Heim >Backend-Entwicklung >PHP-Tutorial >php中DIRECTORY_SEPARATOR,PATH_SEPARATOR常量的作用

php中DIRECTORY_SEPARATOR,PATH_SEPARATOR常量的作用

WBOY
WBOYOriginal
2016-07-25 08:58:101070Durchsuche
本文介绍下,php中的二个常量DIRECTORY_SEPARATOR,PATH_SEPARATOR的作用,有需要的朋友,参考下。

php常量1,DIRECTORY_SEPARATOR DIRECTORY_SEPARATOR:路径分隔符,linux上就是‘/’ windows上是‘\’

php常量2,PATH_SEPARATOR PATH_SEPARATOR:include多个路径使用,在windows下,当需要include多个路径时,要用”;”隔开。 在linux下使用”:”隔开。

说明:这2个常量的使用,可以避免不同平台的兼容性问题。

例如,在zend framework框架中,include 设置 index.php

<?php
set_include_path('.' . PATH_SEPARATOR . '../library/' . PATH_SEPARATOR . './application/models/'
. PATH_SEPARATOR . './application/lib/'
. PATH_SEPARATOR . get_include_path());
?>

get_include_path取得当前已有的环境变量,加上前面的设置便是新的系统include。

通过这个例子,可以理解PATH_SEPARATOR的用法。

再来看,DIRECTORY_SEPARATOR。 php的内部常量,用于显示系统分隔符的命令,不需要任何定义与包含即可直接使用。

在windows下路径分隔符是/(当然/在部分系统上也是可以正常运行的),在linux上路径的分隔符是\。 这样在跨平台部署程序时,会有问题。 比如开发机器是windows,有一个图片上传程序,调试机器上指定的上传文件保存目录是:

define(ROOT, dirname(__FILE__)."/upload");

在本地调试都很正常,但是上传到linux服务器以后,发现会出错。

此时,就需要DIRECTORY_SEPARATOR常量上场了,可以这样:

define(ROOT, dirname(__FILE__).DIRECTORY_SEPARATOR."upload");

DIRECTORY_SEPARATOR是一个返回跟操作系统相关的路径分隔符的php内置命令,在windows上返回\,而在linux或者类unix上返回/。 通常在定义包含文件路径或上传保存目录时用到。

例如:

<?php
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 //模板文件后缀  
);  
}
?>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn