私のコードは次のように動作します:
- テキストがサーバーに送信されます (テキストエリアから)
- テキストは、trim() を介して実行され、次に nl2br が実行されます
しかし、何が起こっているのかというと<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);
例:
表示内容: 表示内容: