zoukankan      html  css  js  c++  java
  • [phpcms二次开发]实现获取路径linux与windows路径兼容

    我的博客:www.while0.com

    我的博客:www.shishangguan.net

    DIRECTORY_SEPARATOR

    目录

    定义
    说明
    例子

    编辑本段定义

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

    编辑本段说明

      众所周知,在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上返回/,就是这么个区别,通常在定义包含文件路径或者上传保存目录的时候会用到。

    编辑本段例子

      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', //模板文件后缀   );   }[1]
    参考资料
    开放分类:
    PHP变量
  • 相关阅读:
    [saiku] 系统登录成功后查询Cubes
    216. Combination Sum III
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    211. Add and Search Word
    210. Course Schedule II
    分硬币问题
    开始学习Python
  • 原文地址:https://www.cnblogs.com/yamadie/p/2759283.html
Copyright © 2011-2022 走看看