我允许用户使用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