DIRECTORY_SEPARATOR

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

基本介紹

  • 中文名:目錄分隔設定
定義,說明,例子,

定義

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

說明

路徑分隔設定
windows
\ or /
linux
/
在 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上返回/,就是這么個區別,通常在定義包含檔案路徑或者上傳保存目錄的時候會用到。

例子

const DIR_SEP = DIRECTORY_SEPARATOR;// 路徑分割 win下\ linux下/
function __construct()
{
$this->_options = array(
'template_dir' => 'templates' . self::DIR_SEP, //模板檔案所在目錄
'cache_dir' => 'templates' . self::DIR_SEP . 'cache' . self::DIR_SEP, //快取檔案存放目錄
'auto_update' => false, //當模板檔案改動時是否重新生成快取
'cache_lifetime' => 0, //快取生命周期(分鐘),為 0 表示永久
'suffix' => '.html', //模板檔案後綴

相關詞條

熱門詞條

聯絡我們