2014-04-16 71 views
2

所以我試圖使用include。這裏是我的index.php找不到PHP文件?

<?php 
include ("r.php"); 
?> 

正如你可以看到它簡單地包括r.php。這是我的r.php

<?php 
echo "This is the included code"; 
?> 

這就是文件都位於enter image description here

所以,當我跑index.php我得到

PHP的警告:包括(r.php):未能打開在第2行中沒有這樣的文件或目錄PHP警告:include():包含錯誤的打開'r.php'(include_path ='.:') - 第2行

我也試過include "r.php";,注意括號,但是我仍然會得到同樣的錯誤。 任何想法?

+0

您是否正在運行命令行或Web?如果它是命令行..確保你把絕對路徑,否則php將使用包含文件時你所在的路徑。 – NMC

+0

它在網上。 @NMC – Idris

+1

爲什麼你用'localhost'標記它是否在網絡上? – celeriko

回答

3

嘗試使用絕對路徑r.php並應工作

+0

這是一個很好的答案,但您至少應該考慮使用像'$ _SERVER ['DOCUMENT_ROOT']'這樣的系統變量來輸出絕對路徑。如果您將項目移到其他地方,這將有所幫助,它會自動調整到新路徑。 – NMC

1

使用此功能可以包括關於文件到當前文件:

include ($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'r.php'); 

同時,確保網絡服務器有權查看該文件。

編輯:使用abolute路徑

+0

我得到這個錯誤PHP警告:包括(//r.php):未能打開流:沒有這樣的文件或目錄中 - 第2行PHP警告:包括():失敗打開'// r。 php'包含(include_path ='.:')在 - 第2行' – Idris

+0

已更新的答案..網絡服務器是否有權限讀取文件? – NMC

+0

是的,它有權限讀取文件 – Idris

1

嘗試找到你的當前工作目錄。然後附加源代碼路徑,然後附加您的文件。請記住,不同操作系統的目錄分隔符不同

$ds = "\\"; // if your on a windows machine 
include(getcwd().$ds.$sourceCodeDirPath.$ds."r.php");