DIRECTORY_SEPARATOR

目錄分隔符,是定義php的內置常量。在調試機器上,在windows我們習慣性的使用“\”作爲文件分隔符,但是在linux上系統不認識這個標識,於是就要引入這個php內置常量了:DIRECTORY_SEPARATOR


在 Windows 中,斜線(/)和反斜線(\)都可以用作目錄分隔符,在linux上路徑的分隔符是/,這就導致了一個問題,比如開發機器是windows,有一個圖片上傳程序,,而我們又使用了(\)作爲文件分隔符,調試機器上指定的上傳文件保存目錄是:define('ROOT',dirname(__FILE__)."\upload"),在本地調試都很正常,但是上傳到linux服務器的時候會發現會出錯。


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


上面的寫法可以改寫爲以下無錯寫法:
define('ROOT',dirname(__FILE__).DIRECTORY_SEPARATOR."upload");


這樣就可以確保不會出錯了。
例如discuz裏面是這樣寫的:define('S_ROOT',dirname(__FILE__).DIRECTORY_SEPARATOR);


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

發佈了19 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章