PHP常量DIRECTORY_SEPARATOR原理及用法解析


Posted in PHP onNovember 10, 2020

DIRECTORY_SEPARATOR在php是什么意思呢,在什么时候使用DIRECTORY_SEPARATOR最合理呢?下面来给各位介绍一下php DIRECTORY_SEPARATOR常量。

我们知道DIRECTORY_SEPARATOR是一个PHP常量,代表反斜杠,因为windows系统和linux系统的反斜杠不一样。在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符,在linux上路径的分隔符是"/"。

那么在PHP代码中什么时候要用DIRECTORY_SEPARATOR代表反斜杠呢?
比如这句话:

代码如下:

require_once dirname(__FILE__).DIRECTORY_SEPARATOR . './../../../wp-config.php';
require_once dirname(__FILE__).DIRECTORY_SEPARATOR.'inc/options.php';

这两句PHP代码,为什么前面部分用DIRECTORY_SEPARATOR,而后面部分却用"/"呢
众所周知,windows下的是\和/,而LINUX下的是/

在程序本地运行很正常,上传到服务器后,发现图片没有显示出来,图片链接是绝对路径 var/,而且当中带有 \ 但是我记得这个路径已经处理成相对路径的

代码如下:

$path = dirname(dirname(dirname(__FILE__))).'\\';
$search = array( $path, '\\');
$replace = array( '', '/');
return str_replace($search,$replace,$this->tempfolder).$this->filename_prefix.$public.'.jpg';

各位也可以看出来了,第一行代码的用在LINUX "\\", 就不行。

解决的办法是 用PHP 预定义常量DIRECTORY_SEPARATOR来代替'\','/'这样的路径分隔符,以前觉得既然windows,LINUX 都支持/,那都用成 / 得了,这是没错的。可是从这个例子可以看出,当要对路径字符串进行处理的时候,就比较危险了,所以最好还是用DIRECTORY_SEPARATOR吧

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
用PHP实现小型站点广告管理(修正版)
Oct 09 PHP
PHP生成便于打印的网页
Oct 09 PHP
PHP中一个控制字符串输出的函数
Oct 09 PHP
php面向对象全攻略 (十七) 自动加载类
Sep 30 PHP
ThinkPHP开发框架函数详解:C方法
Aug 14 PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
详解Yii2.0 rules验证规则集合
Mar 21 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
详解PHP神奇又有用的Trait
Mar 25 PHP
Laravel框架实现即点即改功能的方法分析
Oct 31 PHP
PHP RabbitMQ消息列队
May 11 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
Nov 10 #PHP
通过PHP实现用户注册后邮箱验证激活
Nov 10 #PHP
PHP中的异常处理机制深入讲解
Nov 10 #PHP
基于php解决json_encode中文UNICODE转码问题
Nov 10 #PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 #PHP
关于PHP求解三数之和问题详析
Nov 09 #PHP
PHP中isset、empty的用法与区别示例详解
Nov 05 #PHP
You might like
PHPTree――php快速生成无限级分类
2018/03/30 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
2011/05/25 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
javascript中将Object转换为String函数代码 (json str)
2012/04/29 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
jQuery EasyUI常用数据验证汇总
2016/09/18 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
2016/12/13 Javascript
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
2017/11/21 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
Vue实现Layui的集成方法步骤
2020/04/10 Javascript
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
python中利用await关键字如何等待Future对象完成详解
2017/09/07 Python
python将文本分每两行一组并保存到文件
2018/03/19 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
香港交友网站:be2香港
2018/07/22 全球购物
请写出一段Python代码实现删除一个list里面的重复元素
2015/12/29 面试题
主办会计岗位职责
2014/03/13 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
化妆品促销活动总结
2015/05/07 职场文书
初中军训感言
2015/08/01 职场文书
某药房的新员工入职告知书!
2019/07/15 职场文书