入门 - 目录与文件路径计算 ¶
作者:KK
发表日期:2016.12.28
经常要处理文件和目录的问题时就要用到路径计算
dirname 获取上一级路径 ¶
$path = 'D:\a\b\c';
echo dirname($path); // D:/a/b
echo dirname('D:\a\b.php'); // D:/a 文件路径也可以
但有个问题,如果有上级目录描述符的话,它不会处理这个细节,看这个例子:
echo dirname('D:\a\b\..\c');
结果是D:\a\b\..
,首先我们自己思考一下,D:\a\b..\c实际上是D:\a\c,则它的上一级目录应该是D:\
a,其实计算结果D:\a\b..与它也是等效的,只是dirname返回的值比较单纯,不做太多的计算处理工作
对了,dirname不会判断路径是否存在,只是帮咱们计算一下路径而已
realpath 计算绝对路径 ¶
这个函数很有用,而且它会核实真实路径:
echo realpath(__DIR__ . '/../../'); // 当前目录的 上一级 再上一级
echo realpath('D:\h\i\..\j\k'); //输出空值,因为路径不存在,除非你创建相关目录让它们存在
它输出的值不会带有..
这个上级目录符号,而是经过关系计算得出一个最终的绝对路径
获取路径的信息 ¶
$file = 'D:/a/b/c.php';
$fileInfo = pathinfo($file);
echo $fileInfo['dirname']; // D:/a/b 目录
echo $fileInfo['basename']; // c.php 文件名
echo $fileInfo['extension']; // php 文件后缀
echo $fileInfo['filename']; // c 文件前缀
一般我用这个函数更多是为了获取文件后缀