我正在解析在网页上找到的链接,并且正在寻找一种方法来转换这样的 URL:
http://www.site.com/./eng/.././disclaimer/index.htm
等价且更正确
http://www.site.com/disclaimer/index.htm
主要是为了避免重复。
谢谢。
最佳答案
像这样
function simplify($path) {
$r = array();
foreach(explode('/', $path) as $p) {
if($p == '..')
array_pop($r);
else if($p != '.' && strlen($p))
$r[] = $p;
}
$r = implode('/', $r);
if($path[0] == '/') $r = "/$r";
return $r;
}
这就是你如何使用它
$u = parse_url($dirtyUrl);
$u['path'] = simplify($u['path']);
$clean_url = "{$u['scheme']}://{$u['host']}{$u['path']}";
关于php - PHP 中的 URL 解析和简化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2220960/