require_once中的相对路径不起作用

我有以下结构

otsg

> class

> authentication.php

> database.php

> user.php

> include

> config.inc.php

> encryption.php

> include.php

> session.php

> index.php

> registration.php

include.php文件具有以下内容

ini_set('display_errors', 1);

error_reporting(E_ALL);

ini_set('include_path',ini_get('include_path').':/Applications/MAMP/htdocs/otsg/:');

require_once 'config.inc.php';

require_once '../class/database.php';

require_once '../class/user.php';

require_once 'encryption.php';

require_once 'session.php';

require_once '../class/authentication.php';

在index.php页面中,我包括了

require_once 'include/include.php';

当我打开页面index.php时,出现以下警告和致命错误。我不明白是什么原因导致此错误。当我给出绝对路径时,它可以工作。但是我相信绝对的路线不是一个好主意。

Warning: require_once(../class/database.php) [function.require-once]: failed to open stream: No such file or directory in /Applications/MAMP/htdocs/otsg/include/include.php on line 9

Fatal error: require_once() [function.require]: Failed opening required '../class/database.php' (include_path='.:/Applications/MAMP/bin/php5.3/lib/php:/Applications/MAMP/htdocs/otsg/include/:') in /Applications/MAMP/htdocs/otsg/include/include.php on line 9

提前致谢

回答:

采用

__DIR__

获取脚本的当前路径,这应该可以解决您的问题。

所以:

require_once(__DIR__.'/../class/user.php');

这样可以防止您可以从其他文件夹运行PHP脚本的情况,因此亲戚路径将不起作用。

编辑:斜杠问题已修复

以上是 require_once中的相对路径不起作用 的全部内容, 来源链接: utcz.com/qa/404265.html

回到顶部