管理パネルでckeditorを使用していますが、ユーザー送信フォームでは、ユーザーがテキストを入力して送信できるように、単純なテキストボックスを使用しています。問題は、ユーザーが改行を使用してテキストエリアにテキストを入力すると、SQLにそのまま保存されることです。SQLの各行の後にBRを追加したいと思います。
ユーザーが送信する例:
![F.R.I.E.N.D.S.:
(F)ight for you.
(R)espect you.
(I)nvolve you.
(E)ncourage you.
(N)eed you.
(D)eserve you and
(S)tand by you.][1]![SCREENSHOT oF DB SAVE][2]
次の行が出力に表示されるように、DBに保存されました。しかし、私はDBに次のように保存したいと思います。
F.R.I.E.N.D.S.:<br />
(F)ight for you.<br />
(R)espect you.<br />
(I)nvolve you.<br />
(E)ncourage you.<br />
(N)eed you.<br />
(D)eserve you and<br />
(S)tand by you.
nl2brを使用していますが、ユーザー送信フォームでは機能しません。管理処理フォームでnl2brを使用すると、ckeditorで既に追加されているフィールドに2つのBRタグが追加されます。
ユーザー送信フォームで使用されるコードは次のとおりです。
<textarea name="content" id="content" cols="60" rows="10" class="span7"><?php if(isset($content)) { echo $content; } ?></textarea>
$content = trim($_POST["content"])
$content = mysql_real_escape_string($content);
$content = nl2br($content);
ckeditorがtextareaで使用されている場合、管理者承認フォームでは処理は使用されません。DBからのテキスト出力は、ckeditorの1行に改行なしで表示されます。このフォームでの出力中にnl2brを使用すると機能しますが、ckeditorを介して投稿された以前のテキストにダブルBRが追加されます。
$content = preg_replace("/\r\n|\r/", "<br />", $content);
同様の質問でstackoverflowの誰かが提案したようにも試しました
plsは私にこの問題のためのいくつかの関数を提案します。
また、SQLに挿入する前にコンテンツを処理するためにhtmlentitiesやstripslashesなどの関数を使用する必要がある場合も提案します。