您好,登錄后才能下訂單哦!
引入directory_separator的方法?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
directory_separator的引入
眾所周知,在windows下路徑分隔符是(當然/在部分系統上也是可以正常運行的),在linux上路徑的分隔符是/,這就導致了一個問題;
比如開發機器是windows,有一個圖片上傳程序,調試機器上指定的上傳文件保存目錄是:
define(‘ROOT’,dirname(FILE).”upload”)
在本地調試都很正常,但是上傳到linux服務器的時候會發現會出錯。
這個問題就是出在文件的分隔符上,windows上習慣性的使用作為文件分隔符,但是在linux上人家是不認識這個標識的,人家只認識/,于是就要引入下面這個php內置變量了:DIRECTORY_SEPARATOR。
directory_separator的寫法
上面的寫法可以改寫為以下無錯寫法:
define(‘ROOT’,dirname(FILE).DIRECTORY_SEPARATOR.”upload”);
這樣就可以確保不會出錯了。
例如discuz里面是這樣寫的:
define(‘S_ROOT’,dirname(FILE).DIRECTORY_SEPARATOR);
回到問題本身上,DIRECTORY_SEPARATOR是一個返回跟操作系統相關的路徑分隔符的php內置命令,在windows上返回,而在linux或者類unix上返回/,就是這么個區別,通常在定義包含文件路徑或者上傳保存目錄的時候會用到。
require_oncedirname(FILE).DIRECTORY_SEPARATOR.'./../../../wp-config.php';
require_oncedirname(FILE).DIRECTORY_SEPARATOR.'inc/options.php';
這兩句PHP代碼,為什么前面部分用DIRECTORY_SEPARATOR,而后面部分卻用"/"呢?
眾所周知,windows下的是\和/,而LINUX下的是/
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。