2010-02-02 82 views
3

什麼是set_include_path相對於,在PHP中?它是PHP.exe所在的文件夾嗎?它是webroot嗎?換句話說,set_include_path('/')或set_include_path('。')是指什麼文件夾?什麼是「起點」對於PHP的set_include_path

+0

GZipp提出了以下建議,這是非常有用的,我: 嘗試運行測試腳本 - 通過set_include_path( '/'); echo realpath(get_include_path()); – Joshua 2010-02-02 18:09:45

回答

2

相對路徑是從文件的位置分辨其中include或使用的include_path在使用的另一功能(參見description of include_path):

使用在包括路徑中的.允許相對包括如它表示當前目錄。然而,明確使用include './file'比PHP總是檢查每個包含的當前目錄更有效。

/會描述你的文件系統的根目錄和.當前目錄。

+0

那麼'/'是什麼文件夾? – Joshua 2010-02-02 17:46:56

+3

@Joshua - 嘗試運行測試腳本 - set_include_path('/'); echo realpath(get_include_path()); – GZipp 2010-02-02 17:56:31

+0

謝謝! realpath正是我一直需要的! – Joshua 2010-02-02 18:08:30

1

文件系統根目錄和當前目錄respectively

+0

通過文件系統根你的意思是C:\? – Joshua 2010-02-02 17:46:08

+0

如果您的網絡服務器和其他服務器正在運行C:,當然。 – 2010-02-02 17:47:42

+0

我的網絡服務器正在運行X :,這是C:上的共享文件夾:映射到X: – Joshua 2010-02-02 17:52:34

1

set_include_path(「/」)會使包含路徑成爲文件系統的根文件夾,我會猜測你可能不想這樣做,因爲可能存在暴露文件的問題不想被看到。

如果你的php文件是/home/users/joebloggs/htmlroot/index.php,那麼set_include_path(「。」)會使include路徑成爲php文件所在的目錄,即「htmlroot」目錄。

0

在* nix系統和Windows Apache上,/是文件系統的根目錄。而在IIS上/指向虛擬主機的根目錄。

我該怎麼處理這個問題,是在我的index.php中定義了一個LOC常量,所以在包含文件時我絕不會感到困惑。

define('LOC', dirname(__FILE__)); 
include(LOC . '/files/file.php');