0
$t = '"Confidence isn\'t gained over time and practice. Confidence is gained when you realize you choose your own path, you choose to fall, you choose not to fall.

If you are afraid to fall you fall because you are afraid. Everything is choice." - Daniel ILabaca';
$order   = array("\r\n", "\n", "\r");
$text = str_replace($order, '<br/>', $t);

しかし、データベースにはまだ新しい行があります。

挿入する前にhtmlspecialchars(addslashes(trim($text)))

4

5 に答える 5

2

機能を試してみませんnl2br()か?これを試して:

$text = nl2br($t);

次の 2 つの行の代わりに:

$order   = array("\r\n", "\n", "\r");
$text = str_replace($order, '<br/>', $t);
于 2013-01-12T12:37:08.187 に答える
2

DB にデータを保存するときは、SQL インジェクションを防ぐためにエスケープするだけで済みます。htmlspecialchars、nl2br、addslashes などを実行する必要はありません。ユーザー データをそのまま保存します。しかし、安全であることを確認してください。プレゼンテーション層でこのデータを表示するときは、htmlentities、nl2br、addslashes などの関数を使用する必要があります

于 2013-01-12T12:43:21.487 に答える
0

改行がまったく必要なく、HTML に変換したくない場合<br >は、こちらをご覧ください: HTML ソースからすべての改行を削除します。

于 2013-01-12T12:38:23.207 に答える
0

PHP 組み込みメソッド nl2br() を使用する必要があります

nl2br — Inserts HTML line breaks before all newlines in a string 

<?php
    echo nl2br("Welcome\r\nThis is my HTML document", false);
?>

出力

Welcome<br>
This is my HTML document
于 2013-01-12T12:40:48.410 に答える
0

$order および str_replace ビットの代わりに、単純に試してください$text = nl2br($t);

于 2013-01-12T12:40:58.543 に答える