如何将两个路径正确地加在一起呢?如:d:/web/test/abc + ../1.html应该等于: d:/web/test/1.html
-------------------------------------------如:d:/web/test/abc + ../../1.html应该等于: d:/web/1.html
-------------------------------------------如:d:/web/test/abc + 1.html应该等于: d:/web/test/abc/1.html
-------------------------------------------如:d:/web/test/abc + ../../1.html应该等于: d:/web/1.html
-------------------------------------------如:d:/web/test/abc + 1.html应该等于: d:/web/test/abc/1.html
自动就会跳到d:/web/test/
不用转换就能用。php里:
$path="d:/web/test/abc"."/../1.html";就可以找到d:/web/test/1.html
$a='d:/web/test/abc ';
$b='../1.html ';
$c='d:/web/test/1.html ';???
echo $path="d:/web/test/abc"."/../1.html";
结果:d:/web/test/abc/../1.html
$path2 = '../../1.html';
$path = realpath($path1.'/'.$path2);用realpath,文件必须存在,否则是false
function foo($p1, $p2) {
$a1 = split('/', $p1);
$a2 = split('/', $p2); foreach($a2 as $v) {
if($v == '..') array_pop($a1);
$t = array_shift($a2);
} return join('/', array_merge($a1, array($t)));
}echo foo('d:/web/test/abc', '../1.html');
echo '<br>';
echo foo('d:/web/test/abc', '../../1.html');
d:/web/test/1.html
d:/web/1.html