用各语言做网站的同学,经常遇到的一个问题就是在不同操作系统下路径格式不同。有的必须用“\”,有的必须用“\\”,用的得用“/”之类的。如果我们的开发机和生产环境不是同一种操作系统,总是会遇到麻烦。
但PHP居然贴心的准备了两个内置常量,DIRECTORY_SEPARATOR与PATH_SEPARATOR。
用法很简单。
<?php $path = join(DIRECTORY_SEPARATOR, array('root', 'lib', 'file.php'); ?>
或者
<?php require 'webroot' . DIRECTORY_SEPARATOR . 'index.php'; ?>
之后PHP会自动的根据运行的系统将DIRECTORY_SEPARATOR替换成适当的符号。
但是有的同学说了,如果每次都要敲出这么长的一个常量好烦啊。那么我们可以这么做。Best Practice from CAKEPHP。
<?php /** * Use the DS to separate the directories in other defines */ if (!defined('DS')) { define('DS', DIRECTORY_SEPARATOR); } ?>
然后在地方就可以这样写了。
<?php require 'webroot' . DS . 'index.php'; ?>