互联网技术 · 2024年2月21日

解析PHP常量DIRECTORY_SEPARATOR的原理和用法

这篇文章主要介绍了PHP常量DIRECTORY_SEPARATOR原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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吧

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册