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 相关文章推荐
仿AS3实现PHP 事件机制实现代码
Jan 27 PHP
使用JSON实现数据的跨域传输的php代码
Dec 20 PHP
PHP+MySQL投票系统的设计和实现分享
Sep 23 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
Sep 24 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
PHP微信支付结果通知与回调策略分析
Jan 10 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
Mar 11 PHP
php解决安全问题的方法实例
Sep 19 PHP
PHP接入微信H5支付的方法示例
Oct 28 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 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
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
2016/03/02 PHP
nginx下安装php7+php5
2016/07/31 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
jQuery中animate动画第二次点击事件没反应
2015/05/07 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
Vue完整项目构建(进阶篇)
2018/02/10 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
2018/08/31 Javascript
vue-rx的初步使用教程
2018/09/21 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
Python splitlines使用技巧
2008/09/06 Python
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
python之super的使用小结
2018/08/13 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
详解Python文件修改的两种方式
2019/08/22 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
python 负数取模运算实例
2020/06/03 Python
PyCharm中配置PySide2的图文教程
2020/06/18 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
英国Zoro工具:手动工具,电动工具和个人防护用品
2016/11/02 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
Mysql MVCC机制原理详解
2021/04/20 MySQL