2012-01-13 137 views
1

我允許用戶使用textarea字段發佈評論,有時他們會發佈網址。我需要做的是將這個網址從數據庫轉換爲真正的可點擊鏈接,但不允許使用html標籤。如果可能,我寧願使用php或jquery。我想過使用[link] [/ link]之類的東西,但我需要這樣做,而不需要網站成員的額外努力。請任何想法?將文本網址轉換爲可點擊的網址

例如:

[link]http://www.google.com[/link] 
+0

的可能的複製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

+0

[php html create link from text]可能重複(http://stackoverflow.com/questions/5252727/PHP-HTML創建鏈接,從文本) – s4y 2012-01-13 20:44:12

回答

1

這是我寫的一個小小的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; 

?> 
0

您可以使用preg_replace方法:

//URL's 
$pattern = "/\[link\=(.*)\](.*)\[\/link\]/i"; 
$replace = "<a href=\"$1\">$2</a>"; 
echo preg_replace($pattern, $replace, $subject);