编程语言
首页 > 编程语言> > php-如何制作bbcode以将url标签解析为链接?

php-如何制作bbcode以将url标签解析为链接?

作者:互联网

我应该如何解析php中的网址?我想做到这一点

[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);

那将变成:
    [URL = http://google.com]Google[/url]

解析为bbcode文本:
    Google

您可能会想使用更具体的regex,而不仅仅是.过滤掉潜在的不良/危险输入.

标签:html,php,css,bbcode
来源: https://codeday.me/bug/20191012/1903322.html