2011-01-28 200 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就是一个很好的例子)。