DIRECTORY_SEPARATOR是一个显示系统分隔符的命令,DIRECTORY_SEPARATOR是PHP的内部常量,不需要任何定义与包含即可直接使用。
众所周知,在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上返回/,就是这么个区别,通常在定义包含文件路径或者上传保存目录的时候会用到。

转载于:https://www.cnblogs.com/joshua317/articles/4722601.html

PHP预定义常量DIRECTORY_SEPARATOR相关推荐

  1. PHP中的预定义常量和魔术常量

    魔术常量(8个) 1.__LINE__ 返回文件中的当前行号. 2.__FILE__ 返回文件的完整路径和文件名.如果用在包含文件中,则返回包含文件名.自 PHP 4.0.2 起,__FILE__ 总 ...

  2. mysql中预定义常量_PHP预定义常量

    这些常量在 PHP 的内核中定义.它包含 PHP.Zend 引擎和 SAPI 模块. PHP_VERSION (string) PHP_OS (string) PHP_EOL (string) 自 P ...

  3. php常见预定义常量,php跨平台小结 常用预定义常量

    php跨平台总结 常用预定义常量 /** * 获得用户操作系统的换行符 * * @access public * @return string */ function get_crlf() { /* ...

  4. php 魔术函数,PHP魔术函数、魔术常量、预定义常量

    一.魔术函数(13个) 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__des ...

  5. php中预定义常量的,php预定义常量_PHP教程

    php预定义常量_PHP教程 这些常量在 PHP 的内核中定义.它包含 PHP.Zend 引擎和 SAPI 模块. PHP_VERSION (string) PHP_OS (string) PHP_E ...

  6. PHP中的预定义常量

    PHP可以用预定义常量来获取PHP中的信息.常用的预定义常量如下: 1.__FILE__  默认常量,是指PHP程序文件名及路径: 2.__LINE__ 默认常量,是指PHP程序的行数: 3.__CL ...

  7. php定义常量、判断有没有被定义、预定义常量、显示所有常量

    常量一旦被定义,在脚本的其他任何地方都不能被改变,注意:常量名的前面没有$ 语法:define(name,value,case_insensitive ) name:常量名,一般常量名都大写 valu ...

  8. PHP学习之六:预定义常量

    PHP学习之六:预定义常量 预定义常量 PHP 向它运行的任何脚本提供了大量的预定义常量.不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进 ...

  9. 【数据结构必备基本知识】数据结构常用预定义常量、类型及头文件

    数据结构中我们经常要用到很多预定义的常量,如果每次自己输入,那就比较麻烦啦,在这里,给大家把常用的预定义常量分享出来,下次再用到,直接复制粘贴就好啦. 一.常用头文件 首先自然是常用头文件,因为作者是 ...

最新文章

  1. UIGraphicsBeginImageContext - 位图上下文
  2. @valid注解_springboot使用自定义注解对接口参数校验
  3. 算法基础:递归算法知识笔记
  4. golang(2):beego 环境搭建
  5. java检测栈溢出_java运行方法栈溢出
  6. 未来大数据的主要应用领域包括哪些
  7. 2018蚂蚁金服Java开发实习生一面面经
  8. Python爬虫之堆糖网图片(二)
  9. 华硕电脑连接不上wifi_笔记本无法连接无线网络WiFi的解决办法
  10. SQLServer CTE 递归查询
  11. 交换机和路由器的基本配置
  12. 强烈推荐这些值得下载的神仙工具,每一个都让人惊喜
  13. 美国L1签证申请的常见问题解析
  14. redis 的6种过期策略
  15. 解释器模式计算机Demo
  16. Unity 网络编程入门
  17. python小游戏毕设 坦克大战小游戏设计与实现 (源码)
  18. 打印圆周率指定位数之python
  19. 你只须努力,剩下的交给时光
  20. 前端---HTML关于简易菜鸟教程网站首页制作

热门文章

  1. [YTU]_2803( 字符串中小写改大写)
  2. pinv--求矩阵的伪逆矩阵
  3. Python中常见的数据类型小结
  4. 面向对象的多态性(1)
  5. webchart= php 解码,Web Pages - Chart 帮助器
  6. 分段埃尔米特插值Python实现并检查误差
  7. 爬虫为什么用Chrome?
  8. Django之model
  9. Centreon不出图
  10. 解决Genymotion运行Android 5.0一直卡在开机界面