2012-07-08 66 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