0

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

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

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

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

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

谢谢。

4

1 回答 1

2

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

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

<?php 
require(dirname(__FILE__)."/FileA.php"); 
require(dirname(__FILE__)."/../../FileB.php"); 
于 2012-07-08T11:52:39.603 回答