7

MySQLデータベースに改行を格納するのに最適な方法を決定しようと頭の中でぐるぐる回っています。

少し背景。ユーザーはテキストエリアに入力するように求められます。これは、読み戻されてHTMLメールに含まれるコンテンツの前にMySQLデータベースに保存される必要があります。

それらを次のように保存する必要があります:

1)文字列リテラル-確かにこれは危険で悪い習慣です

2)in-を含む文字列として、\r\nこれをデータベースから読み戻すと、4文字として読み取られるためnl2br()、正しく置き換えることができません。

3)HTMLとして-保存するにはhtmlエンティティでエンコードする必要があるため、実際の改行ではなく、電子メールに到達したときにそのように<br />保存されることになります。それを通過させると、エンコードする必要のある他の文字がデコードされます。&lt;br /&gt;<br />html_entity_decode()

どんな助けでもありがたいです。

4

3 に答える 3

11

そのまま保管しますが、最初に脱出してください。これがオプション 1 です。このデータを表示する必要がある場合は、書式設定に必要な関数を適用します。nl2br()HTML の使用とhtmlentities()関数で表示する必要がある場合。それはメールでも機能します。

このようなテキストエリアのデータがあれば、

$text="Hello Sir,
I am Robert'); Drop table students; --
.....
Yours most obedient pupil
.....";

エスケープした後、そのまま保存するか、準備されたステートメントを使用します。

$text = $mysqli->real_escape_string($text);
于 2013-01-03T12:22:32.817 に答える
0

アプリケーションの種類 (テキストの表示方法) によって異なります。

これが HTML メール エディタなら、html 形式の方が良いと思います。

ほとんどの CMS (コンテンツ管理システム) では、HTML 形式が使用されます (joomla、wordpress、prestashop など)。これは、データベースからこれを読み取ってブラウザーに送信するだけだからです。

それに加えて、おそらく他のHTMLタグが必要になる場合があります(<b>太字やなど<center>)。

\r\nデータがウィンドウフォームコントロールに表示される場合、非Webアプリケーションにはフォーマットを使用する方が良いと思います。

もう 1 つ - 両方の方法で保存できます: - <br>HTML ビューの場合 - \r\nHTML ソースの場合 (改行を追加して、より読みやすい HTML ソース コードを作成するため)

より読みやすいhtmlとは、次のことを意味します。

<center>
This is header
</center>
<p>
This is paragraph.
<br>
Second line.
</p>

これの代わりに:

<center>This is header</center><p>This is paragraph.<br>Second line.</p>
于 2013-01-03T12:16:36.007 に答える