文字列から改行(文字なし)を削除するにはどうすればいいですか? 質問する

文字列から改行(文字なし)を削除するにはどうすればいいですか? 質問する

これは重複しているように見えるかもしれませんが、そうではありません。私は SO と Web の残りの部分の両方で問題の答えを検索しましたが、結局同じ不十分な「解決策」を何度も見つけることになったのです。とにかく、ここにあります:

私はテキストエリアからのユーザー入力を MySQL データベースに保存しています (WordPress 環境内ですが、この問題には関係ないと思います)。後で DB から取得され、サイトのバックエンドの管理者に表示されます。この問題は、ユーザーが改行を含むテキストを送信すると (つまり、Enter キーを押すと) 発生します。

サンプル文字列は次のようになります。

Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!

Greetings,
Bill

文字列には行末文字 ("\n"、"\r" など) が含まれていません。

HTML 出力を生成するためにこれを使用していますnl2br()が、それだけでは不十分です。結果は次のようになります。

Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br />
<br />
Greetings,<br />
Bill

私の理解する限りでは、nl2br()タグを挿入し、そもそも改行を置き換えるものではないため、これは予想される結果ですか?

ただし、必要な形式は次のようになります。

Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br /><br />Greetings,<br />Bill

文字列に「\n」などの EOL 文字が含まれている場合は、str_replace()またはのいずれかを使用してそれをヒットしpreg_replace()て終了しますが、そもそも文字がない場合、これらの関数のどちらにどの針を通すかはわかりません。

DB 内の関連フィールドに手動でアクセスし、改行ごとに Backspace キーを押すと、後で文字列に対して実行したい操作を実行できます。したがって、上記の形式が必要であることはわかっています。

ベストアンサー1

ベンの解決策許容できるが、str_replace()はるかに速いpreg_replace()

$buffer = str_replace(array("\r", "\n"), '', $buffer);

CPU パワーの使用量が少なくなり、世界の二酸化炭素排出量が削減されます。

おすすめ記事