php的內置變量DIRECTORY_SEPARATOR技術說明

php的內置變量DIRECTORY_SEPARATOR是一個顯示系統分隔符的命令,DIRECTORY_SEPARATOR是php的內部常量,不需要任何定義與包含即可直接使用。

衆所周知,在windows下路徑分隔符是\(當然/在部分系統上也是可以正常運行的,微軟的操作系統是夠人性化呢?還是夠不精密的呢?),在linux上路徑的分隔符是/,這就導致了一個問題,比如你的開發機器是windows,你有一個圖片上傳程序,你在你的調試機器上指定的上傳文件保存目錄是:define('BLOGGUY.CN_ROOT', dirname(__FILE__)."/upload"),在本地調試都很正常,可是上傳到linux服務器的時候你會發現會出錯。

是的,www.blogguy.cn就是這麼經歷過的,當初折騰得個半死,所以印象比較深刻。

這個問題就是出在文件的分隔符上,windows上我們習慣性的使用/作爲文件分隔符,但是在linux上人家是不認識這個標識的,人家只認識/,於是就要引入下面這個php內置變量了:DIRECTORY_SEPARATOR。

上面的寫法可以改寫爲以下無錯寫法:

define('BLOGGUY.CN_ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR."upload");

這樣就可以確保不會出錯了。

回到問題本身上,DIRECTORY_SEPARATOR是一個返回跟操作系統相關的路徑分隔符的php內置命令,在windows上返回/,而在linux或者類unix上反悔/,就是這麼個區別,通常在定義包含文件路徑或者上傳保存目錄的時候會用到。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章