我允許用戶使用textarea字段發佈評論,有時他們會發佈網址。我需要做的是將這個網址從數據庫轉換爲真正的可點擊鏈接,但不允許使用html標籤。如果可能,我寧願使用php或jquery。我想過使用[link] [/ link]之類的東西,但我需要這樣做,而不需要網站成員的額外努力。請任何想法?將文本網址轉換爲可點擊的網址
例如:
[link]http://www.google.com[/link]
我允許用戶使用textarea字段發佈評論,有時他們會發佈網址。我需要做的是將這個網址從數據庫轉換爲真正的可點擊鏈接,但不允許使用html標籤。如果可能,我寧願使用php或jquery。我想過使用[link] [/ link]之類的東西,但我需要這樣做,而不需要網站成員的額外努力。請任何想法?將文本網址轉換爲可點擊的網址
例如:
[link]http://www.google.com[/link]
這是我寫的一個小小的PHP腳本。它似乎爲我工作。它使用preg_match_all和preg_replace方法將最終用戶插入的所有鏈接與<a>
標籤進行匹配。
<?php
$text="Click [link]http://www.google.com[/link] or click [link]http://www.yahoo.com[/link]";
preg_match_all('/\\[link](.*?)\\[\/link]/s', $text, $links);
$link_count=count($links);
for($i=0;$i<$link_count;$i++){
$link_url=preg_replace("/\[link]/", "", $links[0][$i]);
$link_url=preg_replace("/\[\/link]/","",$link_url);
$text=str_replace($links[0][$i],"<a href=\"" . $link_url . "\">" . $link_url . "</a>",$text);
}
echo $text;
?>
使用正則表達式的文本塊中找到的網址,然後附加和前面加上必要的標記
http://www.regexguru.com/2008/11/detecting-urls-in-a-block-of-text/
您可能會或可能不會有興趣在這個軟件:http://markitup.jaysalvat.com/examples/bbcode/
您可以使用preg_replace
方法:
//URL's
$pattern = "/\[link\=(.*)\](.*)\[\/link\]/i";
$replace = "<a href=\"$1\">$2</a>";
echo preg_replace($pattern, $replace, $subject);
的可能的複製http://stackoverflow.com/questions/8188645/javascript-regex-to-match-a-url-in-a-field-of-text和http://stackoverflow.com/questions/1959062/how-to-add-anchor-tag-to-a-url-from-text-input – j08691 2012-01-13 20:43:40
[php html create link from text]可能重複(http://stackoverflow.com/questions/5252727/PHP-HTML創建鏈接,從文本) – s4y 2012-01-13 20:44:12