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
分享到:
相关推荐
`PATH_SEPARATOR`是PHP内置的预定义常量,其值会根据操作系统有所不同。 在Linux和类Unix系统(如macOS)中,`PATH_SEPARATOR`的值为冒号 `:`,而在Windows系统中,它的值则是分号 `;`。这个常量被设计用来分割`...
- **`DIRECTORY_SEPARATOR`**: 目录分隔符,在不同的操作系统上有不同的值,如在Windows上是“\”,而在Unix/Linux上是“/”。 这些常量可以帮助开发者编写跨平台兼容的代码,避免因路径格式不同而导致的问题。 ##...
- `DIRECTORY_SEPARATOR`:这是一个内置变量,返回与操作系统相关的路径分隔符,对于Windows是`\`,对于Linux或类Unix系统是`/`,常用于构建跨平台的文件路径。 4. **自动加载**: - `__autoload()`:当尝试实例...
使用`DIRECTORY_SEPARATOR`检查是否为Windows环境,既简洁又通用。 15. **利用 REQUEST_TIME**: 使用`$_SERVER['REQUEST_TIME']`获取当前时间,避免调用`time()`函数。 16. **PCRE优化**: 避免在正则表达式中...
在PHP中,可以使用内置常量`DIRECTORY_SEPARATOR`来确保在不同操作系统下都能正确处理文件路径。在Windows中,路径通常使用反斜杠`\`,而在Linux或Unix系统中,路径使用正斜杠`/`。使用`DIRECTORY_SEPARATOR`,如`...
`DIRECTORY_SEPARATOR`也是一个有用的预定义变量,它表示当前操作系统目录路径的分隔符。在Unix-like系统(如Linux和Mac OS)中,这个值是“/”,而在Windows系统中,值是“\”。利用这个变量可以确保PHP脚本在不同...
为了实现这个功能,我们需要使用两个PHP内置函数:`filesize()`和`unlink()`。 `filesize()`函数用于获取文件的大小,以字节为单位。在代码中,我们通过传递文件路径作为参数来调用它: ```php $filename = "d:\a....
3. `DIRECTORY_SEPARATOR` 预定义变量:这个常量用于表示文件系统中的目录分隔符。在Windows系统中这个值是反斜杠(\),而在Unix和类Unix系统中则是正斜杠(/)。 4. `PHP_SHLIB_SUFFIX` 预定义变量:该变量用于...
- 使用`DIRECTORY_SEPARATOR`常量来获取当前操作系统的目录分隔符,如Unix系统的`/`或Windows的`\`。 - `__FILE__`常量返回当前脚本的完整路径和文件名,这对于获取脚本所在的目录非常有用。 - `__CLASS__`、`__...
使用`DIRECTORY_SEPARATOR`检查操作系统类型,效率高于其他方法。 18. **使用REQUEST_TIME变量**(PHP 5.1.0及以上): 通过`$_SERVER['REQUEST_TIME']`获取时间戳,而不是每次都调用`time()`函数。 19. **PCRE...
DIRECTORY_SEPARATOR . '..', 'name' => 'YiiBlogDemo', // 预载入log(记录) ); ``` **3. 控制器(Controller)** - **定义**: 控制器是处理用户请求的主要类。每个控制器都有一个与之对应的动作(action)...
DIRECTORY_SEPARATOR . '..', // 当前应用根目录的绝对物理路径 'name' => 'YiiBlogDemo', // 当前应用的名称 // 预载入log(记录) ); ``` - **解释**: 主配置文件包含了应用的基本配置信息,例如应用的基础...