2011-01-28 211 views
0

我正在此錯誤問題與包括文件

[28-Jan-2011 09:49:03] PHP Warning: require_once(../../includes/database.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in /Applications/MAMP/htdocs/photo/application/php/classes/users.php on line 2 

[28-JAN-2011 9時49分03秒] PHP致命錯誤:require_once()[function.require]:所需的開口失敗」。 ./../includes/database.php'(include_path ='。:/ Applications/MAMP/bin/php5.3/lib/php')在/ Applications/MAMP/htdocs/photo/application/php/classes/users .PHP第2行

文件我想包括在

/Applications/MAMP/htdocs/photo/application/includes/database.php 

我相信該文件是存在的,我已經檢查,雙重檢查,三重檢查 這是users.php行2

require_once '../../includes/database.php'; 

可能是什麼問題

+0

在require_once之前打印出``pwd``來查看您實際所在的目錄。 – akond 2011-01-28 06:55:08

回答

2

在主文件試試這個(例如的index.php)

define('BASEPATH', realpath(dirname(__FILE__)).DIRECTORY_SEPARATOR); 

然後

require_once(BASEPATH.'../../includes/database.php'); 

與完整路徑工作始終是一個好主意。

ps:這是一個例子,路徑可能是錯誤的。

0

默認包含路徑是相對於調用文件(.是路徑)。

示例目錄結構:

index.php 
foo.php 
bar.php 
/assets/foo.php 
     /bar.php 

如果您index.php電話

include 'assets/foo.php'; 

one/foo.php電話

include 'bar.php'; 

這將等同於index.php調用

include 'assets/bar.php'; 

如果您希望您的includes全部來自相同的上下文,則需要使用根相對路徑(@yoda就是一個很好的例子)。