【问题标题】:Convert text url to a clickable url将文本网址转换为可点击的网址
【发布时间】:2012-01-13 20:40:50
【问题描述】:

我允许人们使用 textarea 字段发布 cmets,有时他们会发布 url。我需要做的是在将其显示为真正的可点击链接之前从 db 转换此 url,但不允许使用 html 标签。如果可能的话,我更愿意使用 php 或 jquery 来完成。我考虑过使用 [link][/link] 之类的东西,但我需要这样做,而不需要网站成员的任何额外努力。请问有什么想法吗??

示例:

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

【问题讨论】:

标签: php jquery


【解决方案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;

?>

【讨论】:

    【解决方案2】:

    使用正则表达式在文本块中查找 url,然后附加和前置必要的标签

    http://www.regexguru.com/2008/11/detecting-urls-in-a-block-of-text/

    【讨论】:

      【解决方案3】:

      您可能对此软件感兴趣,也可能不感兴趣:http://markitup.jaysalvat.com/examples/bbcode/

      【讨论】:

        【解决方案4】:

        你可以使用preg_replace方法:

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

        【讨论】:

          猜你喜欢
          • 2020-10-19
          • 2018-09-27
          • 1970-01-01
          • 1970-01-01
          • 2013-11-29
          • 1970-01-01
          • 2018-09-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多