2012-07-08 61 views
0

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

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

fileA在其代码fileB中引用另一个文件。 到目前为止它干活正确 当我访问fileC.php 我参考使用

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

的fileA的代码能够获取的fileA但只有正常工作时FILEB是在同一文件夹中fileC否则会产生404 error.I我无法理解为什么自fileB被fileA调用后发生这种情况。

谢谢。

回答

2

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

一些简单的解决方案:包括文件之前一直使用dirname(__FILE__),这样一来它是相对于该文件是:

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

用'目录名(__ FILE __)',你的意思是'__DIR__'? :) – Leigh 2012-07-08 11:53:29

+1

是的,但'__DIR__'只有自PHP 5.3,'dirname'之后才可用于老版本的php安装。 – 2012-07-08 11:55:01

+0

但我不必从fileC中调用fileB,fileB是从fileA中调用的 – 2012-07-08 12:42:39