我的代码如下:
但正在发生的事情是添加<br>
但不删除新行
"
something"
变为
"<br>
something"
增加了一条双新线。请帮助此错误破坏所有格式,我可以根据请求提供更多代码。
创建帖子: 缩短创建方法(仅显示相关位)创建方法:
BlogPost::Create(ParseStr($_POST['Content']));
ParseStr运行:
return nl2br(trim($Str));
查看帖子:
echo "<span id='Content'>".BlogPosts::ParseBB(trim($StoredPost->Content))."</span>";
ParseBB运行:
$AllowedTags = array(
// i => Tag, Tag Replacement, Closing tag
0 => array("code","pre class='prettyprint'",true),
1 => array("center","span style='text-align:center;'",true),
2 => array("left","span style='text-align:right;'",true),
3 => array("right","span style='text-align:left;'",true)
);
$AllowedTagsStr = "<p><a><br><br/><b><i><u><img><h1><h2><h3><pre><hr><iframe><code><ul><li>";
$ParsedStr = $Str;
foreach($AllowedTags as $Tag)
{
$ParsedStr = str_replace("<".$Tag[0].">","<".$Tag[1].">",$ParsedStr);
if($Tag[2])
$ParsedStr = str_replace("</".$Tag[0].">","</".$Tag[1].">",$ParsedStr);
}
return strip_tags($ParsedStr,$AllowedTagsStr);
实施例:
我所看到的:
显示的内容:
答案 0 :(得分:0)
你不是在使用UTF-8字符集吗?如果您使用多字节字符集(即UTF-8),修剪将无法正常工作。您必须使用多字节功能。尝试类似这样的事情:http://www.php.net/manual/en/ref.mbstring.php#102141
在<pre>
内,你不需要调用nl2br函数来显示断行。
在创建帖子时,检查是否确实要调用nl2br。您可能只在显示它时才需要它。
答案 1 :(得分:0)