php預定義常量目錄分隔符


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

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

在 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上返回/,就是這么個區別,
通常在定義包含文件路徑或者上傳保存目錄的時候會用到。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com