PHP 获取文件真实路径(清理路径信息)
本函数区别于realpath
,并非基于真是存在的文件系统获取文件路径。故应用范围更为广泛一些,即使文件系统中没有该文件,也可以获得文件的真实路径。
/**
* 整理文件路径
* 作者: 若海[[email protected]]
*/
function path_tidy($path) {
$tidy = array();
$path = strtr($path, '\\', '/');
foreach(explode('/', $path) as $i => $item) {
if($item == '' || $item == '.' ) {
continue;
}
if($item == '..' && end($tidy) != '..' && $i > 0) {
array_pop($tidy);
continue;
}
$tidy[] = $item;
}
return ($path[0]=='/'?'/':'').implode('/', $tidy);
}
//下例将输出/a/b/d/e
echo path_tidy('/u/../a/./b/c/../d/e/./');