文档章节

php目录分隔符DIRECTORY_SEPARATOR

梦梦阁
 梦梦阁
发布于 2017/05/16 10:58
字数 422
阅读 20
收藏 0
点赞 0
评论 0

  在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');  
?>

 

 

© 著作权归作者所有

共有 人打赏支持
梦梦阁
粉丝 23
博文 267
码字总数 151619
作品 0
嘉定
高级程序员
DIRECTORY_SEPARATOR 目录分隔符常量

DIRECTORY_SEPARATOR 是PHP内部常量,表示目录路径分隔符 在 windows 环境下目录分隔符为 '' ,在 linux 环境下目录分隔符为 '/' , 例如:我们要获取网站根目录 define('ROOT', dirname(FIL...

海纳百川
2011/06/27
0
0
PHP DIRECTORY_SEPARATOR

PHP中 DIRECTORY_SEPARATOR 的作用 DIRECTORY_SEPARATOR 是PHP的内部常量,用于显示系统分隔符的命令,不需要任何定义和包含即可使。 在window下路径的分割符为 ,在linux下路径的分割符是 ...

pavols
2016/10/31
10
0
php 多平台目录分隔符 DIRECTORY_SEPARATOR

DIRECTORY_SEPARATOR 目录分隔符,是定义php的内置常量。在调试机器上,在windows我们习惯性的使用“”作为文件分隔符,但是在linux上系统不认识这个标识,于是就要引入这个php内置常量了:D...

Jinl_bm
2016/12/14
0
0
DIRECTORY_SEPARATOR

DIRECTORY_SEPARATOR 系统目录分隔符。 在 Windows 中,斜线“/”和反斜线“”都可以用作目录分隔符,在linux上路径的分隔符是斜线“/”。 若在 windows 上习惯性的使用反斜线“”作为文件分...

成武
2015/06/14
0
0
php_DIRECTORY_SEPARATOR 和 PATH_SEPARATOR

DIRECTORYSEPARATOR 和 PATHSEPARATOR DIRECTORYSEPARATOR:目录分隔符,linux上就是’/’ windows上是’’ PATHSEPARATOR:路径分隔符,include多个路径使用,在win下,当你要include多个路...

喵王不瞌睡
2015/03/02
0
0
php 非常有用的高级函数PATH_SEPARATOR常量和set_include_path

php 非常有用的高级函数PATHSEPARATOR常量和setinclude_path zendframework的示例index.php里有这样一句 setincludepath('.' . PATHSEPARATOR . '../library/'. PATHSEPARATOR . './applica......

至尊宝10086
2017/11/02
0
0
DIRECTORY_SEPARATOR常量

DIRECTORY_SEPARATOR 是一个PHP常量,代表反斜杠,在linux下解析成/ 在window下解析成 在window下,目录结构使用/或者都可以的,但是在linux上路径的分隔符是/ 这里要注意, 比如: 同样的代码...

成越
2016/09/07
4
0
php DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用

一个是:DIRECTORY_SEPARATOR DIRECTORY_SEPARATOR:路径分隔符,linux上就是‘/’ windows上是‘’ 一个是:PATH_SEPARATOR PATH_SEPARATOR:include多个路径使用,在windows下,当你要inc...

share_good
2014/02/12
0
0
php的set_include_path与get_include_path()的用法

setincludepath() 函数可以在php程序中动态改变php的includepath参数,其参数是一个字符串,多个不同的目录可以串联在一起作为一个参数一起提交——不同的目录间使用目录分割符号分开,在类u...

net ljx
2011/09/22
0
0
PHP遍历文件夹函数-listfile

PHP遍历文件夹的自定义函数如下: function listfile($dir){$fileArray = array();$cFileNameArray = array();if($handle = opendir($dir)){while(($file = readdir($handle)) !== false){i......

Minho
2012/02/08
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

数据结构与算法2

一个数组的例子,实现查找,显示和删除的功能。 public class array {public static void main(String[] args){long[] arr;arr = new long[100];int nElems = 0;int j;...

沉迷于编程的小菜菜
10分钟前
0
0
Python3 基于 requests 批量下载图片

Python3 基于 requests 批量下载图片 import requestsheaders = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encod......

leeyi
10分钟前
0
0
Sparkstreaming and Kafka

简介 Kafka 0.10的Spark Streaming集成设计与0.8 Direct Stream方法类似。 它提供了简单的并行性,Kafka分区和Spark分区之间的1:1对应关系,以及对偏移量和元数据的访问。 但是,由于较新的...

刺猬一号
14分钟前
0
0
java获取当前时间所在一周的周一和周日日期

/** * 当前时间所在一周的周一和周日时间 * @param time 当前时间 * @return */ public static Map getWeekDate(String time) { Map map = new HashedMap(); SimpleDateFormat sdf = new Si......

小弱鸡
42分钟前
0
0
Redis数据的导出和导入(dump和load方式)

网上有些文章已经不再适用,本人也是踩了些坑,在此记录下。 迁移redis数据一般有如下3种方式: 第三方工具redis-dump,redis-load aof机制,需要开启aof功能 rdb存储机制 这里介绍第一种方式...

iplusx
47分钟前
1
0
ElasticSearch 高亮显示大文档搜索结果

2016年12月,我们开始研究Ambar——一个文档搜索系统。Ambar使用ElasticSearch作为核心搜索引擎。 在Ambar开发的过程中,我们处理了很多与ES相关的问题,我们想分享我们得到的宝贵经验。让我...

九州暮云
今天
1
0
Python 使用 pywifi 模块 破解wifi密码

git https://github.com/awkman/pywifi 常见常量 from pywifi import const# Define interface status.IFACE_DISCONNECTED = 0IFACE_SCANNING = 1IFACE_INACTIVE = 2IFACE_CONNEC......

阿豪boy
今天
1
0
phpstorm使用Iedis

phpstorm的redis插件Iedis是真好用 看了网上挺多的文章,但是由于我系统还是ubuntu,就有点尴尬了,现在破解之后,留个笔记,即使自己之后有需要也可以很快翻阅 先下载资源 资源下载 zip压缩...

贤郎--均灵
今天
0
0
第三章 spring-bean之FactoryBeanRegistrySupport(4)

前言 从FactoryBeanRegistrySupport类的名字可以看出FactoryBeanRegistrySupport负责FactoryBean的注册与支持。如果想知道FactoryBean相关的资料,请阅读spring-bean中关于FactoryBean的解读...

鸟菜啊
今天
0
0
CentOS “Destination Host Unreachable”问题解决办法

挑战极速安装CentOS时遇到局域网主机不能通信的情况: [root@zjd network-scripts]# ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=......

wffger
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部