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缓存技术介绍
Nov 25 PHP
PHP 批量更新网页内容实现代码
Jan 05 PHP
php将数据库中所有内容生成静态html文档的代码
Apr 12 PHP
利用php绘制饼状图的实现代码
Jun 07 PHP
Thinkphp中Create方法深入探究
Jun 16 PHP
PHP生成条形图的方法
Dec 10 PHP
PHP实现的sqlite数据库连接类
Dec 12 PHP
php静态文件返回304技巧分享
Jan 06 PHP
PHP实现扎金花游戏之大小比赛的方法
Mar 10 PHP
PHP接收json 并将接收数据插入数据库的实现代码
Dec 01 PHP
php解决DOM乱码的方法示例代码
Nov 20 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 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
PHP session常见问题集锦及解决办法总结
2007/03/18 PHP
php实现获取文章内容第一张图片的方法
2014/11/04 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
保证JavaScript和Asp、Php等后端程序间传值编码统一
2009/04/17 Javascript
JavaScript DOM 学习第七章 表单的扩展
2010/02/19 Javascript
解析window.open的使用方法总结
2013/06/19 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
浅谈jQuery before和insertBefore的区别
2016/12/04 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
layui中使用jquery控制radio选中事件的示例代码
2018/08/15 jQuery
脚手架vue-cli工程webpack的基本用法详解
2018/09/29 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
详解Python如何生成词云的方法
2018/06/01 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
使用Python实现分别输出每个数组
2019/12/06 Python
python解析多层json操作示例
2019/12/30 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
html5 canvas-1.canvas介绍(hello canvas)
2013/01/07 HTML / CSS
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
酒店led欢迎词
2014/01/09 职场文书
民生工程实施方案
2014/03/22 职场文书
物资采购方案
2014/06/12 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
宾馆客房管理制度
2015/08/06 职场文书
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server