php需要命令错误

时间:2012-07-08 11:33:45

标签: php require

我有一个home.php文件,该文件使用php require命令引用fileA,该命令位于同一文件夹中,即localhost。代码是:

<?php // /localhost/home.php
require ('/fileA.php');
?>

fileA引用其代码fileB中的另一个文件。 到目前为止它的工作正常 当我访问fileC.php时 我使用

引用fileA
<?php // /localhost/A/B/fileC.php
require ('../../fileA.php');
?>

代码能够获取fileA,但只有当fileB与fileC在同一文件夹中时才能正常工作,否则会产生404错误。我无法理解为什么会发生这种情况,因为fileB是由fileA调用的。

感谢。

1 个答案:

答案 0 :(得分:2)

使用相对文件路径时,请记住它们是相对于当前工作目录的,而不是相对于执行包含的文件。当前工作目录在第一个请求时自动设置(在您的情况下为A/B)。

一些简单的解决方案:在包含文件之前始终使用dirname(__FILE__),这样它相对于文件所在的文件:

<?php 
require(dirname(__FILE__)."/FileA.php"); 
require(dirname(__FILE__)."/../../FileB.php");