-1

我有这个 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;
}
4

1 回答 1

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);
于 2012-08-27T18:51:55.390 回答