详解PHP中DIRECTORY_SEPARATOR常量用法

发布时间:2022-07-21 03:34:02 作者:kikin 阅读量:7970

DIRECTORY_SEPARATOR是一个显示系统分隔符的命令,DIRECTORY_SEPARATOR是PHP的内部常量,不需要任何定义与包含即可直接使用。
        众所周知,在windows下路径分隔符是(当然/在部分系统上也是可以正常运行的),在lin上路径的分隔符是/,这就导致了一个问题,比如开发机器是windows,有一个图片上传程序,调试机器上指定的上传文件保存目录是:define(‘ROOT’, dirname(FILE).”upload”),在本地调试都很正常,但是上传到lin服务器的时候会发现会出错。
        这个问题就是出在文件的分隔符上,windows上习惯性的使用作为文件分隔符,但是在lin上人家是不认识这个标识的,人家只认识/,于是就要引入下面这个php内置变量了:DIRECTORY_SEPARATOR。
上面的写法可以改写为以下无错写法:
        define(‘ROOT’, dirname(FILE).DIRECTORY_SEPARATOR.”upload”);
        这样就可以确保不会出错了。
        例如discuz里面是这样写的:define(‘S_ROOT’, dirname(FILE).DIRECTORY_SEPARATOR);
        回到问题本身上,DIRECTORY_SEPARATOR是一个返回跟操作系统相关的路径分隔符的php内置命令,在windows上返回,而在lin或者类unix上返回/,就是这么个区别,通常在定义包含文件路径或者上传保存目录的时候会用到。

 

1

2

require_once dirname(FILE).DIRECTORY_SEPARATOR . './../../../wp-config.php';

require_once dirname(FILE).DIRECTORY_SEPARATOR.'inc/options.php';

这两句PHP代码,为什么前面部分用DIRECTORY_SEPARATOR,而后面部分却用"/"呢
众所周知,windows下的是和/,而LIN下的是/

在程序本地运行很正常,上传到服务器后,发现图片没有显示出来,图片链接是绝对路径 var/,而且当中带有 但是我记得这个路径已经处理成相对路径的

1

2

3

4

$path    = dirname(dirname(dirname(FILE))).'\';

$search = array( $path, '\');

$replace = array( '', '/');

return str_replace($search,$replace,$this->tempfolder).$this->filename_prefix.$public.'.jpg';

第一行代码的用在LIN "\", 就不行。

解决的办法是 用PHP 预定义常量DIRECTORY_SEPARATOR来代替'','/'这样的路径分隔符,以前觉得既然windows,LIN 都支持/,那都用成 / 得了,这是没错的。可是从这个例子可以看出,当要对路径字符串进行处理的时候,就比较危险了,所以最好还是用DIRECTORY_SEPARATOR吧

以上就是php DIRECTORY_SEPARATOR常量用法讲解的详细内容

***本网站图片,文字之类版权申明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。

我要评论

网友评论


评论时间:2024-04-05 06:25:02

在中国云计算行业高速发展的大背景下,阿里巴巴云服务也迎来了前所未有的机服务器cpuW系列 遇和挑战linux虚拟主机命令 了前所未有的机遇和挑战


评论时间:2023-09-22 21:25:01

1.4关系服务器和云主机怎么区分 数据组织技术服务器硬件开发 据组织技术


评论时间:2022-12-31 18:25:02

首腾讯宝塔服务器 有什么永久免费的云主机 首先我们要了解一下什么是租用服务器


评论时间:2022-10-30 18:25:02

9、在使用本产品之前请仔细阅读以下注意事项:(1)本公司生产的电脑硬件均经过严格的质量检测,并通过了iso90怎么搭建本地服务器 01认证;(2)本宽带服务器名称填写 前请仔细阅读以下注意事项:(1)本公司生产的电脑硬件均经过严格的质量检测,并通过了iso9001认证;(2)本公司所销售的整机及配件均采用原装进口或国内知名品牌,其产品质量可靠,价格合理


评论时间:2022-09-25 09:28:32

VPS(Power Switch)是一种基于TCP/IP协议的远程通信平台,通过该协议可以将不服务器托管什么品牌好 同地点或系统间建立起实时双向传输关系互联云虚拟主机 议的远程通信平台,通过该协议可以将不同地点或系统间建立起实时双向传输关系


评论时间:2022-09-10 21:25:02

18.什么叫云主机服务器 更新日志免费windows7云主机模拟器


评论时间:2022-08-13 12:25:02

1.5SQL语言及其在企业中的hp服务器内存怎么插 运用云主机30元 语言及其在企业中的运用

最新文章

 2023-12-25 22:44:35   admin

活动发布区版规

 2023-05-27 22:03:52   御风而行

容器、无服务器、虚拟机:安全性差...

 2023-05-27 19:08:41   小绵羊0123

科技巨头布局云端 服务器 网络硬...

 2023-05-27 18:17:46   姐姐的跟屁虫

钉钉因系统访问流量激增,宕机1小...

热门阅读

 2022-07-23 00:34:02   freeatom

常见ftp命令 FTP命令使用详...

 2022-07-21 02:17:02   ares

双硬盘组建Raid0磁盘阵列图文...

 2022-07-20 06:17:02   mankeung123

用友软件客户端连接不上服务器的解...

 2022-07-23 00:51:02   antonfxb

WebService实例

 2022-07-13 05:38:02   苯小孩

开发、运维不可不看的Linux调...

 2022-07-20 18:51:02   nightstone

如何使用Charles抓取Web...

随机文章

 2022-01-30 05:38:02   powerdream

如何设置不支持基于域名虚拟主机的...

 2022-02-06 05:38:03   justbeef

FTP服务器的配置

 2022-04-07 05:38:03   yxb066

Windows Server 2...

 2022-06-29 22:19:05   seekyu

3款常用的Linux桌面的日志工...

 2022-07-19 09:51:02   99225

Squid代理服务器原理

热评文章

 2022-07-19 20:17:02   dengyu0429

linux vi使用及详细介绍

 2022-07-20 01:00:05   激动的舌头

Linux视频教程:用户管理命令...

 2022-07-21 20:51:02   jessica-an

创建本地FTP站点

 2022-02-07 05:38:03   jasonkidd

WEB服务器配置详解

 2022-07-20 04:51:02   wolfssss

ACL权限-默认与递归(4)

 2022-07-22 15:00:05   淡水珊瑚

Linux下 Samba Ser...
全球云服务器
Catfish(鲶鱼) Blog V 4.7.3