php需要命令错误


php require command error

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

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

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

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

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

谢谢。

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

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

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