我如何制作一个bbcode来将url标签解析为链接


how do I make a bbcode to parse url tags into links?

我应该如何在php中解析url?我想把它做成

[url=http://www.google.com]Google[/url]

转化为:

<a href="http://www.google.com">Google</a>

这是我用于其他bb代码的代码:

function postparser($post){ 
        $post = str_replace("'n",'END_OF_LINE',$post);
        $post = str_replace("[line]",'HORIZONTAL_LINE',$post);
        $post = str_replace("[bold]",'BOLD_TEXT_START',$post);
        $post = str_replace("[/bold]",'BOLD_TEXT_END',$post);
        $post = str_replace("[yt]",'YOUTUBE_START',$post);
        $post = str_replace("[/yt]",'YOUTUBE_END',$post);
        $post = sanitize($post);
        $post = str_replace("END_OF_LINE",'<br />',$post);
        $post = str_replace("HORIZONTAL_LINE",'<hr />',$post);
        $post = str_replace("BOLD_TEXT_START",'<b>',$post);
        $post = str_replace("BOLD_TEXT_END",'</b>',$post);
        $post = str_replace("YOUTUBE_START",'<iframe width="560" height="315" src="http://www.youtube.com/embed/',$post);
        $post = str_replace("YOUTUBE_END",'" frameborder="0" allowfullscreen></iframe>',$post);
        return $post;
    }

我该怎么做?

$post = preg_replace('/'[url=(.+?)'](.+?)'['/url']/', '<a href="'1">'2</a>', $post);

这将转向:[网址=http://google.com]谷歌[/url]

解析为bbcode文本:谷歌

您可能希望使用比更具体的regex+过滤掉潜在的坏/危险输入。