如何在PHP中将包含..遍历的路径转换为规范路径?

时间:2015-04-03 23:35:14

标签: php string

  //CONVERT INPUT TO OUTPUT:
  // input => /var/www/../html/../a/data/
  // output => /var/a/data/

是否有更好的解决方案来创建该位置的真实路径?

$string = "/var/www/../html/../a/data/";

$str = explode('/', $string);
if ($str[0] == "")
    array_shift($str);

$max = sizeof($str);
for ($i = 0; $i < $max; $i++){
    $str[$i] = "/" . $str[$i];
    if (strpos($str[$i], "..")){
        unset($str[$i]);
        unset($str[$i-1]);
    }
}

echo $string = implode($str);

1 个答案:

答案 0 :(得分:1)

假设允许使用核心PHP函数,那么这个怎么样?

<?php
echo realpath('/var/www/../html/../a/data/');