6

別のフォームから送信したテーブルから取得したテキストエリアにデータを表示しようとしています。新しい行が入力されると、問題が発生します。

テキストエリアに表示されるデータは次のとおりです

lin1\r\nlin2

それは次のようになるはずです

lin1
lin2

nl2br を試しましたが、期待どおりに動作しません。どうすれば物事を最適化できますか。ありがとう

4

7 に答える 7

9

stripcslashes()この問題は、データを出力するときに使用して解決できます。

stripslashes()上記の方法は、この場合に機能しない方法とは異なることに注意してください。

使用してみnl2brましたが、それでも十分ではありませんでした。

于 2016-10-09T07:47:32.980 に答える
4

これはよくある質問で、最も一般的な答えは ln2br または str_replace です。

ただし、これは不要なコードを作成しているだけです。

実際には、問題はほとんどの場合、データを表示する前に mysql エスケープ関数を介して実行したことです。おそらく、あなたがそれを保存している最中だったのでしょう。代わりに、保存のためにデータをエスケープしますが、エスケープされていないバージョンを表示します。

于 2014-08-27T23:34:33.400 に答える
1

挿入/更新ステートメントで引用符を使いすぎます

あなたの場合、この問題は次のことで解決できます

<?php
$str = 'lin1\r\nlin2';
$solved_str = str_replace(array("\\r","\\n"), array("\r","\n"), $str);

var_dump($str,$solved_str);

ただし、オーバークォーテーションエスケープシンボルの挿入/更新ステートメントを確認する必要があります

于 2013-10-24T13:57:11.953 に答える
1

"\r\n" のように \r\n には二重引用符を使用することをお勧めします。一重引用符で正しく機能したことはありません。

于 2016-02-15T10:02:33.783 に答える