2011-08-01 61 views
0

我有點困惑,所以你可以拿出任何答案,這將幫助我開始尋找問題所在。PHP Pathing issues

我有/folder1/API.php使用:require_once( '../文件夾2/core.php中');

我然後有/folder1/Panel.php使用:require_once( '文件夾2/core.php中'); (請注意,沒有'..')。

不知何故,既API.php和Panel.php能夠找到core.php中,即使他們是在同一個文件夾,但不同require_once參數。

即使怪異:在/folder2/Core.php,有require_once( '../ folder3/DBConfig.php');其中API.php能夠通過,但是當從Panel.php調用函數時,它說我找不到'../folder3/DBConfig.php'。

+0

檢查:

由於test.php被包括在index.php,都在它的相對路徑將相對於index.php(所以大多數將被打破)


1件事計算如果folder1內有一個folder2 .. !! – Shameer

+0

您是單獨使用Panel.php還是API.php,還是其中一個或兩個都包含在另一個腳本中? – Arkh

回答

4

要求(幷包括)將在include路徑也可能是文件夾都包含有搜索。

文件是基於給定的文件路徑包括,或者,如果沒有給定, include_path中指定。如果文件在 include_path中找不到,include()將最終在失敗前檢入調用腳本自己的 目錄和當前工作目錄。包含()構造的 如果找不到文件將發出警告;這個 是與require()不同的行爲,它會發出致命錯誤。 http://www.php.net/manual/en/function.include.php

0

記住..說index.php包括文件test.php這是在另一個文件夾。

test.php有一些包括具有到其它文件的相對路徑。

Files are included based on the file path given or, if none is given, the include_path specified. If the file isn't found in the include_path, include() /and likewise require/ will finally check in the calling script's own directory and the current working directory before failing.

+0

我明白,但我有兩個文件位於相同的目錄中查找相同的文件,但每個文件都有不同的路徑。 – ninjaneer