php文件目錄分隔符Windows與linux兼容的問題

再這兩個系統中,Windows的分隔符是「\」,linux是「/」,因此在文件目錄匹配的時候可能會遇到系統不兼容出錯,因此通常定義目錄分隔符使用以下php常量:DIRECTORY_SEPARATOR
php

  在 Windows 中,斜線(/)和反斜線(\)均可以用做目錄分隔符,在linux上路徑的分隔符是/,這就致使了一個問題,好比開發機器是windows,有一個圖片上傳程序,,而咱們又使用了(\)做爲文件分隔符,調試機器上指定的上傳文件保存目錄是:linux

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上返回/,就是這麼個區別,一般在定義包含文件路徑或者上傳保存目錄的時候會用到。
相關文章
相關標籤/搜索