php regex bbcode返回空白

时间:2012-08-27 18:31:22

标签: php regex bbcode

我有这个bbcode标签“remover”,它应该从我的测试文本中删除bbcode标签。 我得到的一切都没有。只是空白页面应该是用html标签替换的文本。 它出什么问题了。也许任何人都有更好的分享脚本。

$str = 'This [b]is just[/b] a [i]test[/i] text!';
function forum_text($str)
{
$str = htmlspecialchars($str);

$str = preg_replace( "#\[url\](?:http:\/\/)?(.+?)\[/url\]#is", "<a href=\"http://$1\">$1</a>", $str ); 
$str = preg_replace( "#\[img\](?:http:\/\/)?(.+?)\[/img\]#is", "<img src=\"http://$1\" />", $str ); 
$str = preg_replace( "#\[b\](.+?)\[/b\]#is", "<strong>$1</strong>", $str ); 
$str = preg_replace( "#\[i\](.+?)\[/i\]#is", "<i>$1</i>", $str ); 
$str = preg_replace( "#\[u\](.+?)\[/u\]#is", "<u>$1</u>", $str ); 

return $str;
}

1 个答案:

答案 0 :(得分:0)

以下是您的代码,前面有一些代码(以确保显示任何错误)和后面的一些代码(实际上是调用您的函数)。

如果这对您不起作用,则问题不在此处,除非您没有正常工作的PCRE。

error_reporting(-1); ini_set('display_errors', 'On');

$str = 'This [b]is just[/b] a [i]test[/i] text!';
function forum_text($str)
{

    $str = htmlspecialchars($str);

    $str = preg_replace( "#\[url\](?:http:\/\/)?(.+?)\[/url\]#is", "<a href=\"http://$1\">$1</a>", $str );
    $str = preg_replace( "#\[img\](?:http:\/\/)?(.+?)\[/img\]#is", "<img src=\"http://$1\" />", $str );
    $str = preg_replace( "#\[b\](.+?)\[/b\]#is", "<strong>$1</strong>", $str );
    $str = preg_replace( "#\[i\](.+?)\[/i\]#is", "<i>$1</i>", $str );
    $str = preg_replace( "#\[u\](.+?)\[/u\]#is", "<u>$1</u>", $str );

    return $str;
}

echo forum_text($str);