PHP中DIRECTORY_SEPARATOR的作用

DIRECTORY_SEPARATOR是php的内部常量,用于显示系统分隔符的命令,不需要任何定义与包含即可直接使用。

在windows下路径分隔符是\(当然/在部分系统上也是可以正常运行的),在linux上路径的分隔符是/,这就导致了一个问题,比如开发机器是windows,有一个图片上传程序,调试机器上指定的上传文件保存目录是:

define(ROOT, dirname(__FILE__)."/upload");

在本地调试都很正常,但是上传到linux服务器的时候会发现会出错。于是php引入了DIRECTORY_SEPARATOR变量,可以将上面的写法改写为:

define(ROOT, dirname(__FILE__).DIRECTORY_SEPARATOR."upload");

DIRECTORY_SEPARATOR是一个返回跟操作系统相关的路径分隔符的php内置命令,在windows上返回\,而在linux或者类unix上返回/,就是这么个区别,通常在定义包含文件路径或者上传保存目录的时候会用到。

例如:

view plaincopy to clipboardprint?

const DIR_SEP = DIRECTORY_SEPARATOR;// 路径分割 win下 linux下/

private function __construct()

{

$this->_options = array(

template_dir => templates . self::DIR_SEP, //模板文件所在目录

cache_dir => templates . self::DIR_SEP . cache . self::DIR_SEP, //缓存文件存放目录

auto_update => false, //当模板文件改动时是否重新生成缓存

cache_lifetime => 0, //缓存生命周期(分钟),为 0 表示永久

suffix => .html //模板文件后缀

);

}

时间: 2024-08-01 15:01:27

PHP中DIRECTORY_SEPARATOR的作用的相关文章

javascript中defer的作用

javascript中defer的作用 <script src="../CGI-bin/delscript.js" defer></script>中的defer作用是文档加载完毕了再执行脚本,这样回避免找不到对象的问题 加上 defer 等于在页面完全在入后再执行,相当于 window.onload ,但应用上比 window.onload 更灵活!defer是脚本程序强大功能中的一个"无名英雄".它告诉浏览器Script段包含了无需立即执行

web.xml的配置中&lt;context-param&gt;配置作用

<context-param>的作用: web.xml的配置中<context-param>配置作用1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> 和 <context-param></context-param> 2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文. 3.容器将&l

java中super的作用

super()的作用 super可以用来访问超类的构造方法和被子类所隐藏的方法,如果子类中有方法与超类中的方法名称和参数相同,则超类中的方法就被隐藏起来,也就是说在子类中重载了父类中的方法. 引用父类中所隐藏的语法格式如下: super(参数列表)或super.方法名(参数列表) 下面通过代码展示一下super的用法: package cn.demo; public class Demo1 { public static void main(String[] args) { SubClass_A

&#39;autocomplete=&quot;off&quot;&#39;在Chrome 中不起作用

加油_linda 'autocomplete="off"'在Chrome 中不起作用 我们在表单输入框中输入信息,提交表单后,当我们再次进入表单页面,双击输入框时,会出现之前提交的信息,这是因为浏览器一般会记录下输入框之前提交表单的信息.这就是这篇文章要讲的autocomplete. AutoComplete控件就是指用户在文本框输入前几个字母或是汉子的时候,该控件就能从存放数据的文本或是数据库里将所有以这些字母开头的数据提升给用户,供用户选择,提供方便. 输入框(input,text

【php】DIRECTORY_SEPARATOR的作用

DIRECTORY_SEPARATOR是php的内部常量,用于显示系统分隔符的命令,不需要任何定义与包含即可直接使用. 在windows下路径分隔符是/(当然/在部分系统上也是可以正常运行的),在linux上路径的分隔符是/,这就导致了一个问题,比如开发机器是windows,有一个图片上传程序,调试机器上指定的上传文件保存目录是: define('ROOT', dirname(__FILE__)."/upload"); 在本地调试都很正常,但是上传到linux服务器的时候会发现会出错.

OSEck中odo_vect2pcb的作用

在基于OSEck RTOS的TI DSP中,中断可以作为一个进程存在,在OSEck系统中,进程分为两类:优先级进程,中断进程.当可屏蔽中断(INT4~15)发生后,就会执行相应的中断vector,在vector的代码中会找到注册在该中断号上的进程,然后由OSEck负责调度,进而切换到可屏蔽中断进程.该中断进程与优先级进程类似,同样有PCB(进程控制块),而在odo_vect2pcb数组中就存储了可屏蔽中断号(INT4~15)与中断进程PCB的映射(这就是vect2pcb的含义),odo_vect

宏定义中##和#的作用

解释1 : 定义中##和#的作用内核中有很多的宏定义,在宏定义define中经常看到两个字符串##和#,这里把它的用法做一下说明:1. ####是一个连接符号,用于把参数连在一起例如:> #define FOO(arg) my##arg则> FOO(abc)相当于 myabc2.#:是"字符串化"的意思.出现在宏定义中的#是把跟在后面的参数转换成一个字符串例如:> #define STRCPY(dst, src) strcpy(dst, #src)则> STRC

C/C++中static关键字作用总结

1.先来介绍它的第一条也是最重要的一条:隐藏.(static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.举例来说明.同时编译两个源文件,一个是a.c,另一个是main.c. 1 //a.c 2 char a = 'A'; // global variable 3 void msg() 4 { 5 printf("Hello\n"); 6 } //main.c int main() { extern char a; //

C/C++中static关键字作用总结[转]

1.先来介绍它的第一条也是最重要的一条:隐藏.(static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.举例来说明.同时编译两个源文件,一个是a.c,另一个是main.c. //a.c char a = 'A'; // global variable void msg() { printf("Hello\n"); } //main.c int main() { extern char a; // extern varia