3

ユーザーがテキストエリアからテキストを保存する場合:

bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf

asdfasdfasdfasdf asd asdf asdf 

sdfasdfasdf

codeignterでnl2br_except_pre関数を使用してテキストエリアから、次のようにデータベースに保存します。

bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf
<br>
asdfasdfasdfasdf asd asdf asdf 
<br>
sdfasdfasdf

divまたはpタグでの出力に適しています。または一般的にhtml出力で。

ただし、textarea内で再度ループすると、
タグが表示され、見苦しく、ユーザーを混乱させます。

保存した値をデータベースから再入力する前に出力をサニタイズして、テキストエリアに次のように表示するにはどうすればよいですか。

bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf

asdfasdfasdfasdf asd asdf asdf 

sdfasdfasdf

そしてこれが好きではない:

bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf
<br>
asdfasdfasdfasdf asd asdf asdf 
<br>
sdfasdfasdf
4

3 に答える 3

6

さて、大まかな答えは' strip_tagsを使用するだけです':

$raw_textarea = 'bfajsdb fkjasdfasjkdfasdfasdf asdf asdf sdf
<br>
asdfasdfasdfasdf asd asdf asdf 
<br>
sdfasdfasdf';

$clean_textarea = strip_tags($raw_textarea);
echo $clean_textarea;

しかし、実際には、それだけではありません。無関係なタグを削除するだけでなく、出力のサニタイズについて心配する必要があるかもしれません。そのトピックに関するこのディスカッションを読むことをお勧めします。

于 2012-09-04T12:14:00.893 に答える
4

nl2br()データをデータベースに保存しないでください。あなたはあなたのデータベースにhtmlではなくデータを保存することを目指すべきです。

必要に応じて、ビューでレンダリングするときにデータベース値にnl2br()を適用します。Textareaフィールドは、nl2br()処理を必要としません。

もちろん、出力するときは、nl2br()の前にhtmlspecialchars()も適用する必要があります。

于 2012-09-04T12:14:34.467 に答える
0

nl2brphp関数を試してください

それはあなたの望む出力を作ります。

はい、これは正しいです。データの表示中にnl2br関数を使用している場合は、機能します。

于 2012-09-04T12:14:37.480 に答える