[英]Simple preg replace I cannot figure out
我花了幾個小時試圖解決這個問題,但我還是無法解決。 我只是希望preg_replace
只從錨標記中刪除http://
。 我嘗試了這個str_replace
但是您已經知道它在preg_replace
內部不起作用:
$site = preg_replace('/<a href="(.*?)">/','<a href="mypage.php?url='. str_replace("http://", "", "$1") .'">', $site);
我只希望任何錨鏈接刪除http://
部分,但不希望圖像鏈接刪除,因此它不會破壞<img src =“ .....”>標簽。 僅錨標記的網址。 實際上,如果可以刪除http://
和www。 分開也很棒。 因此http://google.com或http://www.google.com將顯示為google.com。 謝謝。
$1
不是真正的變量,因此不能在其上使用str_replace
。
嘗試這個 :
$site = preg_replace('/<a href="http:\/\/(.*?)">/','<a href="mypage.php?url=$1">', $site);
通過將http://放在模式中,可以確保它不會在$1
。 當然,您確實需要在其前面加上反斜杠來轉義/
。 因此:\\/\\/
如果您還需要將其用於https,請嘗試:
$site = preg_replace('/<a href="https?:\/\/(.*?)">/','<a href="mypage.php?url=$1">', $site);
?
s
將允許它存在或不存在。 當然,這會將鏈接https://google.com
重寫為mypage.php?url=google.com
,而這可能不是您想要的(您不再知道它是http還是https)
對於www。 部分:
$site = preg_replace('/<a href="https?:\/\/(www\.|)(.*?)">/','<a href="mypage.php?url=$2">', $site);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.