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 相关文章推荐
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
第四章 php数学运算
Dec 30 PHP
php代码中使用换行及(\n或\r\n和br)的应用
Feb 02 PHP
深入phpMyAdmin的安装与配置的详细步骤
May 07 PHP
destoon实现商铺管理主页设置增加新菜单的方法
Jun 26 PHP
PHP开发框架Laravel数据库操作方法总结
Sep 03 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
Mar 07 PHP
PHP之图片上传类实例代码(加了缩略图)
Jun 30 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
Laravel6.18.19如何优雅的切换发件账户
Jun 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
PHP用户指南-cookies部分
2006/10/09 PHP
smarty模板数学运算示例
2016/12/11 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
2007/01/16 Javascript
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
Javascript 中的类和闭包
2010/01/08 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
2015/01/29 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
Javascript的比较汇总
2016/07/25 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
node微信开发之获取access_token+自定义菜单
2019/03/17 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
基于Vue实现电商SKU组合算法问题
2019/05/29 Javascript
Vue实现页面添加水印功能
2019/11/09 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
优秀毕业生推荐信
2013/11/02 职场文书
审计专业自荐信范文
2014/04/21 职场文书
实验室的标语
2014/06/20 职场文书
代理人委托书
2014/09/16 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书