包含文件的问题

时间:2011-01-28 06:53:10

标签: php

我收到此错误

[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 09:49:03] PHP致命错误:require_once()[function.require]:无法打开所需的'../../includes/database.php'(include_path =':第2行/Applications/MAMP/htdocs/photo/application/php/classes/users.php中的/Applications/MAMP/bin/php5.3/lib/php')

我想要包含的文件是

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

我确定文件在那里,我检查过,双重检查,三重检查 这是users.php中的第2行

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

可能是什么问题

2 个答案:

答案 0 :(得分:2)

在主文件中尝试此操作(例如index.php)

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

然后

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

使用完整路径总是一个好主意。

ps:这是一个例子,路径可能是错误的。

答案 1 :(得分: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';

如果您希望所有包含来自相同的上下文,则需要使用根相对路径(@yoda有一个很好的例子)。