PHP预定义常量DIRECTORY_SEPARATOR
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相关推荐
- PHP中的预定义常量和魔术常量
魔术常量(8个) 1.__LINE__ 返回文件中的当前行号. 2.__FILE__ 返回文件的完整路径和文件名.如果用在包含文件中,则返回包含文件名.自 PHP 4.0.2 起,__FILE__ 总 ...
- mysql中预定义常量_PHP预定义常量
这些常量在 PHP 的内核中定义.它包含 PHP.Zend 引擎和 SAPI 模块. PHP_VERSION (string) PHP_OS (string) PHP_EOL (string) 自 P ...
- php常见预定义常量,php跨平台小结 常用预定义常量
php跨平台总结 常用预定义常量 /** * 获得用户操作系统的换行符 * * @access public * @return string */ function get_crlf() { /* ...
- php 魔术函数,PHP魔术函数、魔术常量、预定义常量
一.魔术函数(13个) 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__des ...
- php中预定义常量的,php预定义常量_PHP教程
php预定义常量_PHP教程 这些常量在 PHP 的内核中定义.它包含 PHP.Zend 引擎和 SAPI 模块. PHP_VERSION (string) PHP_OS (string) PHP_E ...
- PHP中的预定义常量
PHP可以用预定义常量来获取PHP中的信息.常用的预定义常量如下: 1.__FILE__ 默认常量,是指PHP程序文件名及路径: 2.__LINE__ 默认常量,是指PHP程序的行数: 3.__CL ...
- php定义常量、判断有没有被定义、预定义常量、显示所有常量
常量一旦被定义,在脚本的其他任何地方都不能被改变,注意:常量名的前面没有$ 语法:define(name,value,case_insensitive ) name:常量名,一般常量名都大写 valu ...
- PHP学习之六:预定义常量
PHP学习之六:预定义常量 预定义常量 PHP 向它运行的任何脚本提供了大量的预定义常量.不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进 ...
- 【数据结构必备基本知识】数据结构常用预定义常量、类型及头文件
数据结构中我们经常要用到很多预定义的常量,如果每次自己输入,那就比较麻烦啦,在这里,给大家把常用的预定义常量分享出来,下次再用到,直接复制粘贴就好啦. 一.常用头文件 首先自然是常用头文件,因为作者是 ...
最新文章
- UIGraphicsBeginImageContext - 位图上下文
- @valid注解_springboot使用自定义注解对接口参数校验
- 算法基础:递归算法知识笔记
- golang(2):beego 环境搭建
- java检测栈溢出_java运行方法栈溢出
- 未来大数据的主要应用领域包括哪些
- 2018蚂蚁金服Java开发实习生一面面经
- Python爬虫之堆糖网图片(二)
- 华硕电脑连接不上wifi_笔记本无法连接无线网络WiFi的解决办法
- SQLServer CTE 递归查询
- 交换机和路由器的基本配置
- 强烈推荐这些值得下载的神仙工具,每一个都让人惊喜
- 美国L1签证申请的常见问题解析
- redis 的6种过期策略
- 解释器模式计算机Demo
- Unity 网络编程入门
- python小游戏毕设 坦克大战小游戏设计与实现 (源码)
- 打印圆周率指定位数之python
- 你只须努力,剩下的交给时光
- 前端---HTML关于简易菜鸟教程网站首页制作