PHP正则表达式bbcode返回空白

我有这个bbcode标签“卸妆”,它应该从我的测试文本中删除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;
}

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

如果这不适合你,你的问题不在这里,除非你没有工作的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);
链接地址: http://www.djcxy.com/p/29873.html

上一篇: php regex bbcode returns blank

下一篇: PHP BBCode Parser