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边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 PHP
AJAX for PHP简单表数据查询实例
Jan 02 PHP
一些使用频率比较高的php函数
Oct 03 PHP
php正则表达式使用的详细介绍
Apr 27 PHP
Yii中render和renderPartial的区别
Sep 03 PHP
php文件读取方法实例分析
Jun 20 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
Dec 18 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
PHP Primary script unknown 解决方法总结
Aug 22 PHP
laravel 执行迁移回滚示例
Oct 23 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 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
一个取得文件扩展名的函数
2006/10/09 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
List the UTC Time on a Computer
2007/06/11 Javascript
jquery将一个表单序列化为一个对象的方法
2014/01/03 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
基于jQuery实现仿百度首页选项卡切换效果
2016/05/29 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
Python语言描述最大连续子序列和
2017/12/05 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
JSF的标签库有哪些
2012/04/27 面试题
实习生自我评价
2014/01/18 职场文书
网络宣传方案
2014/03/15 职场文书
农民工工资承诺书范文
2014/03/31 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
广告学专业求职信
2014/06/19 职场文书
个性发展自我评价2015
2015/03/09 职场文书
老公出轨后的保证书
2015/05/08 职场文书
学校捐款活动总结
2015/05/09 职场文书
狂人日记读书笔记
2015/06/30 职场文书