-1
public_html > config.php 

public_html > A > test_file.php

在 test_file.php 代码中

require_once("../config.php");

工作正常。在 Dreamweaver 中显示动态相关的文件(config.php)

public_html > includes > classes > allclasses.php

在 allclasses.php 代码中

require_once("../../config.php");

在 Dreamweaver 中显示动态相关的文件(config.php)

当我在 test_file.php 中包含 allclasses.php

require_once("../config.php");
require_once("../includes/classes/allclasses.php");

在 Dreamweaver 中显示动态相关的文件(config.php、allclasses.php)

test_file.php 停止工作并在浏览器上显示

Warning: require_once(../../config.php) [function.require-once]: 
failed to open stream: No such file or directory in .....\public_html\includes\classes\allclasses.php on line 11

使用 xampp 作为开发服务器。

4

3 回答 3

2

当做 include inside 时,最好使用绝对路径。因此,您可以使用__DIR__or__FILE__常量来执行此操作,就像在 test_file.php 中一样,例如:

require_once(realpath(dirname(__FILE__) . '/../config.php'));

要不就

require_once(realpath(__DIR__ . '/../config.php'));
于 2013-10-31T11:00:44.827 回答
0

使用绝对 url 路径而不是相对 url 路径。

尝试这个:

require_once($_SERVER["DOCUMENT_ROOT"]."/config.php");
于 2013-10-31T11:00:59.397 回答
0

除非你调用类似的东西chdir(),否则所有 require/include 调用都是相对于被调用 PHP 文件的目录(这里是 test_file.php)。这就是require_once("../../config.php")from allclasses.php抛出错误的原因。

在您的情况下,最简单的解决方法是require_once("../../config.php")allclasses.php中删除,如果它没有其他影响的话。

我建议使用前端控制器,以确保调用的 PHP 脚本始终是同一个文件(并且 include/require 始终针对同一个目录),并且对config.php文件的所有包含只执行一次.

于 2013-10-31T11:02:00.707 回答