我解析网页上找到的链接,和我正在寻找一种方式来URL转换是这样的:URL解析和简化在PHP
http://www.site.com/./eng/.././disclaimer/index.htm
等效和更正确的
http://www.site.com/disclaimer/index.htm
主要是为了避免重复。
谢谢。
我解析网页上找到的链接,和我正在寻找一种方式来URL转换是这样的:URL解析和简化在PHP
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']}";
究竟是什么让你觉得这两个网址是相同的?
如果您可以用详细的方式回答此问题,请使用正则表达式或解析器来遵守您知道表示页面等效的规则。
,因为它们导致相同的地址这两个网址是等价的。 如果您在地址栏上输入“脏”,浏览器会自动简化它。 – Omiod
工程! 不得不在阅读您的代码片段之前了解它是如何工作的:) 非常感谢。 – Omiod
为什么“服务”代码没有包含到函数本身中? :-)我会想象函数,它作为一个参数dirtyUrl并返回cleanUrl。 :-) – Radium