我解析網頁上找到的鏈接,和我正在尋找一種方式來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