function makeLinksInTheContent($html)
{
$html= preg_replace("/(^|[\n ])([\w]*?)((ht|f)tp(s)?:\/\/[\w]+[^ \,\"\n\r\t<]*)/is", "$1$2<a href=\"$3\" rel=\"nofollow\" >$3</a>", $html);
$html= preg_replace("/(^|[\n ])([\w]*?)((www|ftp)\.[^ \,\"\t\n\r<]*)/is", "$1$2<a href=\"http://$3\" rel=\"nofollow\" >$3</a>", $html);
$html= preg_replace("/(^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+)+)/i", "$1<a href=\"mailto:[email protected]$3\" rel=\"nofollow\">[email protected]$3</a>", $html);
return($html);
}
這是我的代碼。preg_replace用於替換匹配網址的字符串
我的需求是自動鏈接的URL。使用preg_replace查找網址並將鏈接設置爲此網址。
例如:「一個頁面包含www.google.com。」如果我將此內容傳遞給makeLinksInTheContent($ html),它將返回「一頁包含www.google.com」。
但是下面的url格式沒有被鏈接。
www.test.com()和[] & ^%$#@ + | @#$%^ &()_ +} {:!「? > <,。/;'[] = - 09〜`.co,in,com.com
http://www.test.com()and [] & ^%$#@!+ | !@#$%^ &()_ +} {:「?> <,。/;'[] = - 09〜`.co,in,com.com
https://www.test.com()和[] & ^%$#@!+ |!@#$%^ &()_ +} {:「?> <,。/;'[] = -09〜`.co,in,com.com
ftp://www.test.com()and [] & ^%$#@!+ |!@#$%^ &()_ +} {:?「> <,/;'[] = - 09〜`.CO,在,com.com
我想我的正則表達式有一些錯誤。請給我們建議。
我已經回答了這個問題之前...?這個EXACT問題 – SmokeyPHP
[preg \ _replace替換匹配url的字符串]的副本(http://stackoverflow.com/questions/17783918/preg-replace-to-replace-string-for-matching-url) – SmokeyPHP