2013-04-19 59 views
1

您好我想知道如何刪除URL中的所有重複的字符,但保持http://和查詢字符串完好無損。如何刪除連續的字符,並避免一些字符串

例如網址:

https://domain.com:800///some/here..jpg 

目前有這樣的代碼至極刪除重複的字符:

preg_replace('/([^a-zA-Z0-9-_\s])\\1+/', '$1', urldecode($url)) 

,並解析爲:

https:/domain.com:800/some/here.jpg <-- removed the/from https:// 

我怎樣才能讓只更換路徑保持其餘的完整?

+1

關於解決原來的問題是什麼?這些點是如何重複開始的? – Sebas

+0

我需要加載一些基於URL方案的文件,然後重定向到「乾淨」的網址。 – greenbandit

+1

您可以分兩步進行。先從'http://'分開字符串,然後'preg_replace',然後加入。 – elclanrs

回答

1

我不擅長用正則表達式,所以我可以給你一個替代解決方案,而無需修改代碼:

$url = "https://domain.com:800///some/here..jpg"; 
$url_without_https = substr($url, 8); //assuming its always https:// 
$urlModified = preg_replace('/([^a-zA-Z0-9-_\s])\\1+/', '$1', urldecode($url_without_http)); 
$url = "http://" . $urlModified; 
相關問題