簡體   English   中英

使用正則表達式替換內容中的鏈接和超鏈接

[英]Replace links in content with hyperlinks using Regular Expressions

我有一個包含用戶博客內容的字符串。 如果它們包括以下內容:

www.google.com
http://google.com
http://www.google.com

在他們的博客文章中,我希望PHP用真正的超鏈接替換這些事件,但保留原始子字符串(即不要將www.google.com更改為http://www.google.com )。

有誰知道我如何用PHP和正則表達式做到這一點? 我試過這個:

echo preg_replace('/((www|http:\/\/)[^ ]+)/', '<a href="$1" target="_blank">$1</a>', $content);

但是如果你用空格結束鏈接,這只會成功。 如果以逗號或句號結束,則會失敗。

preg_replace('/\b(?:(http(s?):\/\/)|(?=www\.))(\S+)/is',
             '<a href="http$2://$3" target="_blank">$1$3</a>',
             $content); 
$pattern = '/<a (.*?)href=[\"\'](.*?)\/\/(.*?)[\"\'](.*?)>(.*?)<\/a>/i';
$new_content = preg_replace($pattern, '$5', $content);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM