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获取textarea的值并处理回车换行的方法
Oct 20 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
Oct 30 PHP
thinkphp循环结构用法实例
Nov 24 PHP
php读取csv文件并输出的方法
Mar 14 PHP
php实现递归抓取网页类实例
Apr 03 PHP
php通过exif_read_data函数获取图片的exif信息
May 21 PHP
php构造方法中析构方法在继承中的表现
Apr 12 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
PHP网页安全认证的实例详解
Sep 28 PHP
利用PHP获取汉字首字母并且分组排序详解
Oct 22 PHP
YII框架行为behaviors用法示例
Apr 26 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
oracle资料库函式库
2006/10/09 PHP
php中将地址生成迅雷快车旋风链接的代码[测试通过]
2011/04/20 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
php的ajax简单实例
2014/02/27 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
2018/09/16 PHP
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
js 调用父窗口的具体实现代码
2013/07/15 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
利用jQuery解析获取JSON数据
2017/04/08 jQuery
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
JS绘图Flot如何实现动态可刷新曲线图
2020/10/16 Javascript
Python语言的12个基础知识点小结
2014/07/10 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
numpy库reshape用法详解
2020/04/19 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
一个C/C++编程面试题
2013/11/10 面试题
公司成本主管岗位责任制
2014/02/21 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
体育节口号
2014/06/19 职场文书
护士节活动总结
2014/08/29 职场文书
教师党员个人剖析材料
2014/09/29 职场文书
辩护意见书
2015/06/04 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书