php目录分隔符DIRECTORY_SEPARATOR

php目录分隔符DIRECTORY_SEPARATOR

转载:https://www.cnblogs.com/timelesszhuang/p/3814878.html  

在windows我们习惯性的使用“\”作为文件分隔符,但是在linux上系统不认识这个标识,于是就要引入这个php内置变量了:DIRECTORY_SEPARATOR

 
路径分隔符
windows
\ or /
linux
/
 
 
 
 
   
      在 Windows 中,斜线(
/)和反斜线(
\)都可以用作目录分隔符,在linux上路径的分隔符是/,这就导致了一个问题,比如开发机器是windows,有一个图片上传程序,,而我们又使用了(\)作为文件分隔符,调试机器上指定的上传文件保存目录是:
define(‘ROOT’,
dirname(__FILE__).”\upload”),
在本地调试都很正常,但是上传到linux服务器的时候会发现会出错。
这个问题就是出在文件的
分隔符上,windows上习惯性的使用\作为文件分隔符,但是在linux上人家是不认识这个标识的,人家只认识/,于是就要引入下面这个
php内置
变量了:DIRECTORY_SEPARATOR。
上面的写法可以改写为以下无错写法:
define(‘ROOT’,
dirname(__FILE__).DIRECTORY_SEPARATOR.”upload”);
这样就可以确保不会出错了。
例如discuz里面是这样写的:
define(‘S_ROOT’,
dirname(__FILE__).DIRECTORY_SEPARATOR);
回到问题本身上,DIRECTORY_SEPARATOR是一个返回跟操作系统相关的路径
分隔符
php内置命令,在windows上返回\,而在linux或者类unix上返回/,就是这么个区别,通常在定义包含文件路径或者上传保存目录的时候会用到。
 
实例:
<?php  
include('smarty/Smarty.class.php');  
//程序目录  
const DIR_SEP = DIRECTORY_SEPARATOR;  
define('SITE_ROOT', dirname(__FILE__).DIR_SEP);  
  
$smarty = new Smarty;  
$smarty->template_dir = SITE_ROOT.'templates'.DIR_SEP;  
$smarty->complie_dir  = SITE_ROOT.'templates_c'.DIR_SEP;  
$smarty->config_dir   = SITE_ROOT.'configs'.DIR_SEP;  
$smarty->cache_dir    = SITE_ROOT.'cache'.DIR_SEP;  
  
$smarty->assign('world','hello world!');  
$smarty->display('index.htm');  
?>

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112591.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • web安全概述_网络安全和web安全

    web安全概述_网络安全和web安全域名什么是域名?域名(DomainName),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。例:www.baidu.comDNS什么是DNS?域名系统(DomainNameSystem,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过2

    2022年9月20日
    2
  • GAN 基本原理以及数学证明「建议收藏」

    GAN 基本原理以及数学证明「建议收藏」新博客地址:https://gyrojeff.top,欢迎访问!本文为博客自动同步文章,为了更好的阅读体验,建议您移步至我的博客👇<!–JS库sweetalert可修

    2022年7月1日
    27
  • notepad++正则表达式替换字符串

    notepad++正则表达式替换字符串则表达式是一个查询的字符串,它包含一般的字符和一些特殊的字符,特殊字符可以扩展查找字符串的能力,正则表达式在查找和替换字符串的作用不可忽视,它能很好提高工作效率。EditPlus的查找,替换,文件中查找支持以下的正则表达式:表达式说明/t制表符./n新行..匹配任意字符.|匹配表达式左边和右边的字符.例如,”ab|bc”匹配”ab”或者”bc”….

    2022年5月17日
    43
  • Hadoop mapreduce过程key 和value分别存什么值

    Hadoop mapreduce过程key 和value分别存什么值Hadoop mapreduce过程key 和value分别存什么值

    2022年4月23日
    53
  • C语言 stat 函数「建议收藏」

    C语言 stat 函数「建议收藏」C语言stat函数stat头文件:#include<sys/stat.h>#include<unistd.h>函数原型:intstat(constchar*file_name,structstat*buf)**函数说明:**stat函数获取file_name指向文件的文件状态,并将文件信息保存到结构体buf中,执行成功返回0,失…

    2022年8月21日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号