当前位置:首页> PHP教程> php基础
关键字
文章内容
一个ubbcode的函数,速度很快.
 
 
修改时间:[2012/07/06 12:44]    阅读次数:[1387]    发表者:[起缘]
 

前面见到有人发表

但是速度比较慢,也非常长这

里给出一种

function ubb($str)
{
     
    $color = Array('red', 'blue', 'green');
     
    $str = eregi_replace('[url]([a-zA-Z0-9@:%_.~#-?&amp;]+)[/url]', '<a href=http://\1>\1</a>', $str); //url 
    $str = eregi_replace('[url=http://([a-zA-Z0-9@:%_.~#-?&amp;]+)](.+)[/url]', '<a href=\1 target=_blank>\2</a>', $str);
     
    $str = eregi_replace('[url=([a-zA-Z0-9@:%_.~#-?&amp;]+)](.+)[/url]', '<a href=http://\1 target=_blank>\2</a>', $str);
     
    $str = eregi_replace('[img]([a-zA-Z0-9@:%_.~#-?&amp;]+)[/img]', '<img src=http://\1>\1</img>', $str); //img 
    $str = eregi_replace('[h([1-6])](.+)[/h[1-6]]', '<h\1>\2</h\1>', $str); //h1-6 
    $str = eregi_replace('[email]([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})[/email]', '<a href=mailto:\1>\1</a>', $str); //email 
    $str = eregi_replace('[email=([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})](.+)[/email]', '<a href=mailto:\1>\2</a>', $str);
     
    $str = eregi_replace('<b>(.+)</b>', '<b>\1</b>', $str);
     
    $str = eregi_replace('<i>(.+)</i>', '<i>\1</i>', $str);
     
    $str = eregi_replace('<font size="(.+)">(.+)</font>', '<font size=\1>\2</font>', $str);
     
    $str = eregi_replace('<font color="(.+)">(.+)</font>', '<font color=\1>\2</font>', $str);
     
    $str = eregi_replace('[sub](.+)[/sub]', '<sub>\1</sup>', $str); //下裱 
    $str = eregi_replace('[sup](.+)[/sup]', '<sup>\1</sup>', $str); //上标 
    for($i = 0; $i < = count($color); $i++)$str = eregi_replace('['.$color[$i].'](.+)[/'.$color[$i].']', '<font color='.$color[$i].'>\1</font>', $str);
     
$str = preg_replace(" /  < div class = "smalltxt" style = "margin-left: 2em; font-weight: bold" > QUOTE: < / div > < div class = "altbg2" style = "margin: 2em; margin-top: 3px; padding: 10px; border: 1px solid #52628f; word-break: break-all" > (. + ? ) < / div > / is " , " < blockquote > < font size = '1' face = 'Courier New'> quote: < / font > < hr > \1 < hr > < / blockquote > " , $str);
     
$str = preg_replace(" / < div class = "smalltxt" style = "margin:6px 12px 3px 12px; font-weight: bold;padding:4px;" > < div style = "float: left" > CODE: < / div > < div style = "text-align: right; float: right; padding:4px;" > < a href = "###" class = "smalltxt" onclick = "copycode(findobj('code0'));" > [复制到剪切板] < / a > < / div > < / div > < div class = "altbg2" style = "margin:-5px 12px 6px 12px;margin-bottom:24px;clear: both; padding: 10px; padding-top: 4px;padding-bottom: 0px; border: 1px solid #F1F1F1; word-break: break-all" id = "code0" > <code> < span style = "color: #000000" >
                        < span style = "color: #0000BB" > < / span > < span style = "color: #007700" > (. + ? )&nbsp; < / span > < br / >
                        < / span > < br / >
                        < / code > < / div > (非常全面的一个php技术网站, < a href = "" > < / a > < a href = "" > < / a > 有相当丰富的文章和源代码.) / is " , " < blockquote > < font size = '1' face = 'Times New Roman'> code: < / font > < hr color = 'lightblue'> < i > \1 < / i > < hr color = 'lightblue'> < / blockquote > " , $str);
     
    $str = preg_replace(" / [sig](. + ? )[/sig] / is " , " < div style = 'text-align: left;color: darkgreen;margin-left: 5%'> < br > < br > --------------------------< br > \1 < br > --------------------------< / div > " , $str);
     
    return $str;
     
}