在windows下路徑分隔符是\(當然/在部分系統上也是可以正常運行的),在linux上路徑的分隔符是/,這就導致了一個問題,比如開發機器是windows,有一個圖片上傳程序,調試機器上指定的上傳文件保存目錄是:
define(ROOT, dirname(__FILE__)."/upload");
在本地調試都很正常,但是上傳到linux服務器的時候會發現會出錯。於是php引入了DIRECTORY_SEPARATOR變量,可以將上面的寫法改寫為:
define(ROOT, dirname(__FILE__).DIRECTORY_SEPARATOR."upload");
DIRECTORY_SEPARATOR是一個返回跟操作系統相關的路徑分隔符的php內置命令,在windows上返回\,而在linux或者類unix上返回/,就是這麼個區別,通常在定義包含文件路徑或者上傳保存目錄的時候會用到。
例如:
view plaincopy to clipboardprint?
const DIR_SEP = DIRECTORY_SEPARATOR;// 路徑分割 win下 linux下/
private 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 //模板文件後綴
);
}