【发布时间】:2012-04-22 09:06:01
【问题描述】:
据我所知,基本上就是这样。我可以包含或 require_once 一个没有包含/require_once 的脚本,但如果包含/require_once,那么 PHP 会抛出这个错误:
警告:require_once(../constants/constants.php) [function.require-once]:无法打开流:C:\Home\Workspace\PHP\DD\src\log\ 中没有这样的文件或目录第 7 行的 test.php
致命错误:require_once() [function.require]: 无法打开所需的 '../constants/constants.php' (include_path='.;C:\Program Files\Xampp 1.7.7\php\PEAR')在第 7 行的 C:\Home\Workspace\PHP\DD\src\log\test.php 中
路径正确。我担心我可能弄乱了 Apache Webserver 的一些配置文件(我创建了一个 .htaccess 文件来使用 mod_rewrite 以创建一些更好的 URL)。 .htaccess 文件内容就是这样:
选项 +FollowSymLinks
重写引擎开启
RewriteRule !.(gif|jpg|png|css)$ index.php
我的 apache 文档根目录是“C:/Home/Workspace/PHP”
更新:
我发现使用绝对路径是可行的,如下所示:
require_once $_SERVER['DOCUMENT_ROOT']."/DD/src/constants/constants.php";
我想我不会使用相对路径,那么。
【问题讨论】:
-
这与 Apache 无关。执行嵌套包含的文件在包含时必须具有相对于自身的正确路径。根据包含的文件,
../constants/constants.php不在正确的位置。 -
@Michael 您应该将此作为答案。 ;-) 使用
dirname(__FILE__)获取当前 php 文件的目录,而不考虑当前的工作目录,这对于所有 php 文件来说都是相同的,即使它们位于不同的目录中。
标签: php include xampp pear require-once