php⽂件⽬录分隔符Windows与linux兼容的问题
linux怎么读取windows文件再这两个系统中,Windows的分隔符是“\”,linux是“/”,所以在⽂件⽬录匹配的时候可能会遇到系统不兼容出错,所以⼀般定义⽬录分隔符使⽤如下php常量:DIRECTORY_SEPARATOR
在 Windows 中,斜线(/)和反斜线(\)都可以⽤作⽬录分隔符,在linux上路径的分隔符是/,这就导致了⼀个问题,⽐如开发机器是windows,有⼀个图⽚上传程序,,⽽我们⼜使⽤了(\)作为⽂件分隔符,调试机器上指定的上传⽂件保存⽬录是:
('ROOT',(__FILE__)."\upload"),
在本地调试都很正常,但是上传到linux服务器的时候会发现会出错。
这个问题就是出在⽂件的上,windows上习惯性的使⽤\作为⽂件分隔符,但是在linux上⼈家是不认识这个标识的,⼈家只认识/,于是就要引⼊下⾯这个内置了:DIRECTORY_SEPARATOR。
上⾯的写法可以改写为以下⽆错写法:
('ROOT',(__FILE__).DIRECTORY_SEPARATOR."upload");
这样就可以确保不会出错了。
例如discuz⾥⾯是这样写的:
('S_ROOT',(__FILE__).DIRECTORY_SEPARATOR);
回到问题本⾝上,DIRECTORY_SEPARATOR是⼀个返回跟操作系统相关的路径的内置命令,在windows上返回\,⽽在linux或者类unix上返回/,就是这么个区别,通常在定义包含⽂件路径或者上传保存⽬录的时候会⽤到。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论