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)
上一篇 2021年11月4日 下午11:00
下一篇 2021年11月4日 下午11:00


相关推荐

  • 图像处理算法论文

    图像处理算法论文一:去雾方面的论文      1、EfficientImageDehazingwithBoundaryConstraintandContextualRegularization,下载地址:      http://lab.datatang.com/1984DA173065/WebFile/DocWeb/2014012053738649.pdf

    2022年5月17日
    48
  • GMT时间格式转换(Mon Feb 13 08:00:00 GMT+08:00 2012)

    GMT时间格式转换(Mon Feb 13 08:00:00 GMT+08:00 2012)普通的时间转换问题我这里就不再罗嗦了 我想大家应该都会那种低级的转换问题吧 现在我向大家总结一下如何转换 GMT 时间格式 这种格式的转换方法网上还不是很多 所以有必要总结一下 也算给有需要的朋友一个小小的帮助啦 首先先来了解一下 GMT 的时间格式 MonFeb1308 00 00GMT 08 002012 可能还会有其他的格式类似 SunSep0 00 00G

    2025年6月14日
    4
  • 大数据平台框架、组件以及处理流程详解

    大数据平台框架、组件以及处理流程详解数据产品和数据密不可分作为数据产品经理理解数据从产生、存储到应用的整个流程,以及大数据建设需要采用的技术框架Hadoop是必备的知识清单,以此在搭建数据产品时能够从全局的视角理解从数据到产品化的价值。本篇文章从三个维度:1.大数据的处理流程2.大数据的的平台框架Hadoop3.Hadoop生态圈组件理解了数据从产生到场景应用每个环节的流程过程以及企业在建立大数据平台时需要采用的技术…

    2022年5月23日
    151
  • linux 文档编辑命令_vim编辑器常用命令

    linux 文档编辑命令_vim编辑器常用命令Linux文档编辑命令1.vi或vim命令1.基本操作1.vim文件名:进入一般模式(不能输入)2.按下i从一般模式,进入到插入模式3.按下esc从插入模式,退出到一般模式4.在一般模式下,输入:wq,退出编辑。2.vi基本概念3.常用命令2.管道linux提供管道符号“|”作用是“命令1”的输出内容,将作为“命令2”…

    2026年4月15日
    4
  • 大神手把手教学,Obsidian+Claude Code 10 倍效率玩转笔记,构建 AI 第二大脑

    大神手把手教学,Obsidian+Claude Code 10 倍效率玩转笔记,构建 AI 第二大脑

    2026年3月16日
    1
  • windows配置多个NTP服务器地址

    windows配置多个NTP服务器地址背景:有客户的windows配置了time.nist.gov作为时间同步服务器地址,可能因为这个服务器在美国,有时候不能成功从服务器拿到最新时间。所以给客户配置多个NTP地址,一个不行自动去问另一个。 1.打开cmd窗口(需以管理员身份运行)2.重启时间同步服务netstopw32time&amp;netstartw32time3.配置NTP地址池(可以是域…

    2022年5月29日
    151

发表回复

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

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