php正则表达式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;
}

下面是您的代码,前面有一些代码(以确保显示任何错误),后面有一些代码。

如果这对你不起作用,你的问题就不在这里,除非你没有一个有效的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);

最新更新