有或没有“http://”的BBCode preg_replace更改链接

时间:2014-06-02 04:08:25

标签: php

我正在为我的网站开发解析器而且我遇到了一个问题 - 无论如何都要移除/插入" http://"从字符串用户preg_replace?我知道如何使用该功能的基础知识,并且一直在关注教程,但我不确定如何去做这个。

这是我的代码:

    function showBBcodes($text) 
{   
    // BBcode array
    $find = array(
    '~\[b\](.*?)\[/b\]~s',
    '~\[i\](.*?)\[/i\]~s',
    '~\[u\](.*?)\[/u\]~s',
    '~\[quote\](.*?)\[/quote\]~s',
    '~\[size=(.*?)\](.*?)\[/size\]~s',
    '~\[color=(.*?)\](.*?)\[/color\]~s',
    '~\[url=([^]]*)\]([^[]*)\[/url\]~s',
    '~\[img\](https?://.*?\.(?:jpg|jpeg|gif|png|bmp))\[/img\]~s'
    );
    // HTML tags to replace BBcode
    $replace = array(
    '<b>$1</b>',
    '<i>$1</i>',
    '<span style="text-decoration:underline;">$1</span>',
    '<pre>$1</'.'pre>',
    '<span style="font-size:$1px;">$2</span>',
    '<span style="color:$1;">$2</span>',
    '<a href="https://$1">$2\</a>',
    '<img src="$1" alt="" />'
    );

    // Replacing the BBcodes with corresponding HTML tags
    return preg_replace($find,$replace,$text);
}

0 个答案:

没有答案