php的内置变量DIRECTORY_SEPARATOR是一个显示系统分隔符的命令,DIRECTORY_SEPARATOR是php的内部常量,不需要任何定义与包含即可直接使用。
众所周知,在windows下路径分隔符是\(当然/在部分系统上也是可以正常运行的,微软的操作系统是够人性化呢?还是够不精密的呢?),在linux上路径的分隔符是/,这就导致了一个问题,比如你的开发机器是windows,你有一个图片上传程序,你在你的调试机器上指定的上传文件保存目录是:define('BLOGGUY.CN_ROOT', dirname(__FILE__)."/upload"),在本地调试都很正常,可是上传到linux服务器的时候你会发现会出错。
是的,许多网站就是这么经历过的,当初折腾得个半死,所以印象比较深刻。
这个问题就是出在文件的分隔符上,windows上我们习惯性的使用/作为文件分隔符,但是在linux上人家是不认识这个标识的,人家只认识/,于是就要引入下面这个php内置变量了:DIRECTORY_SEPARATOR。
上面的写法可以改写为以下无错写法:
define('BLOGGUY.CN_ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR."upload");
这样就可以确保不会出错了。
例如discuz里面是这样写的:define('S_ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR);
回到问题本身上,DIRECTORY_SEPARATOR是一个返回跟操作系统相关的路径分隔符的php内置命令,在windows上返回/,而在linux或者类unix上反悔/,就是这么个区别,通常在定义包含文件路径或者上传保存目录的时候会用到。
来自:http://hi.baidu.com/cubeking/blog/item/e40a5ced4c3c9339acafd58b.html
分享到:
相关推荐
DIRECTORY_SEPARATOR在php是什么意思呢,在什么时候使用DIRECTORY_SEPARATOR最合理呢?下面来给各位介绍一下php DIRECTORY_SEPARATOR常量。 我们知道DIRECTORY_SEPARATOR是一个PHP常量,代表反斜杠,因为windows系统...
本文实例讲述了php中常量DIRECTORY_SEPARATOR用法。分享给大家供大家参考。具体如下: DIRECTORY_SEPARATOR在php是什么意思呢,在什么时候使用DIRECTORY_SEPARATOR最合理呢?下面来给各位介绍一下php DIRECTORY_...
一个是:DIRECTORY_SEPARATOR DIRECTORY_SEPARATOR:路径分隔符,linux上就是‘/’ windows上是‘\’ 一个是:PATH_SEPARATOR PATH_SEPARATOR:include多个路径使用,在windows下,当你要include多个路径的话,你...
include_once(dirname(dirname(__FILE__)).DIRECTORY_SEPARATOR.’phpsec’.DIRECTORY_SEPARATOR.’Math’.DIRECTORY_SEPARATOR.’BigInteger.php’); include_once(dirname(dirname(__FILE__)).DIRECTORY_SEPARATOR...
php中有一个非常有用的预定义常量PATH_SEPARATOR,我们可以通过该常量来判断当前服务器是linux还是Windows。本文将向大家讲解php使用PATH_SEPARATOR获取当前服务器的类型。 PATH_SEPARATOR是php中的一个预定义常量...
主要介绍了php PATH_SEPARATOR判断当前服务器系统类型实例的相关资料,需要的朋友可以参考下
DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . "vendor" . DIRECTORY_SEPARATOR . "autoload.php"; // import namespaces use Namshi\Notificator\Notification\Handler\Email as EmailHandler; use Namshi\...
GetDlgItemText(IDC_EDIT_DIRECTORY, Directory_Buf, sizeof(Directory_Buf)); GetDlgItemText(IDC_EDIT_NAME, InputFileName_Buf, sizeof(InputFileName_Buf)); GetDlgItemText(IDC_EDIT_OUTPUTFILE, ...
Window系统无法调用OpenCV代码报错:java.lang.UnsatisfiedLinkError: Directory separator should not appear in library name: C:\Windows\System32\opencv_java343.dll。出现该问题主要是安装的Windows系统缺乏...
DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'extensions' . DIRECTORY_SEPARATOR . 'yii-file-processor' . DIRECTORY_SEPARATOR . 'fileProcessor');应用配置: ...'controllerMap' => array('image' =>...
可在窗体的状态栏内显示设备坐标和逻辑坐标的X/Y信息,变量ID_SEPARATOR用来显示设备坐标系下的鼠标位置,ID_SEPARATOR用来显示逻辑坐标系下的鼠标位置。return m_bkBrush; 作为约定,返回背景色对应的刷子句柄。
$fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR; } $fileName = __DIR__ . DIRECTORY_SEPARATOR . $fileName . $className . '.php'; if ...
DIRECTORY_SEPARATOR . 'library'; } public function autoload($class) { // Only load the class if it starts with "SimplePie" if (strpos($class, 'SimplePie') !== 0) { return; }...
$uploadDir = ‘images’.DIRECTORY_SEPARATOR.date(“Ymd”).DIRECTORY_SEPARATOR;$dir = dirname(__FILE__).DIRECTORY_SEPARATOR.$uploadDir;file_exists($dir) || (mkdir($dir,0777,true) && chmod($dir,0777));...
php内置变量了:DIRECTORY_SEPARATORDIRECTORY_SEPARATOR是一个返回跟操作系统相关的路径分隔符的php内置命令,在windows上返回/,而在linux或者类unix上反悔/,就是这么个区别,通常在定义包含文件路径或者上传保存...
Yii2 IP2位置 该扩展为Yii2框架提供了IP2Location集成。 安装 。 将此程序包解压缩到前端/... DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'IP2Location' . DIRECTORY_
$class = join(DIRECTORY_SEPARATOR, array('PhpPresentation', 'Tests', '_includes')) . substr($class, strlen($prefix)); $file = __DIR__ . DIRECTORY_SEPARATOR . $class . '.php'; ...
$PNG_TEMP_DIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'temp'.DIRECTORY_SEPARATOR; $PNG_WEB_DIR = 'temp/'; include "qrlib.php"; // QRcode lib $data = 'demo qrcode'; // data $ecc = 'H';