編集: 私の問題は単純化されており、改行文字を完全に削除できないことに要約されていると思います。
試し$new_content = str_replace("\n", '<br/>', $_POST["new_content"]);
ました:これが機能しない理由はわかりませんが、テキストファイルを調べると、次のような不思議な改行が残っています。
event:|:Test:|:Line 1
<br/>Line 2:|:September 29th, 2012
元の質問:
テキストフィールドと非常に単純な「データベース」を備えたフォームがあります。これは、送信されたフォームデータを保存する.txtファイルです。これは、今気付いた1つの大きな問題を除けばすべてうまく機能します。ユーザーがEnter/Returnキーを押してテキストボックスの新しい行に移動すると、結果の文字列が何であれ、新しい行がデータベース内の別の行を表すテキストファイルが台無しになります。
たとえば、テキストファイルが通常どのように表示されるかを次に示します。
type:|:heading:|:content:|:date
event:|:Big Event 2012:|:More info and booking details.:|:September 29th, 2012
event:|:Website relaunch:|:Keep your eyes pealed.:|:September 25th, 2012
ここで、フォームに入力してテキストボックスのリターンキーを押して新しい段落を開始すると、テキストファイルは次のようになります。
type:|:heading:|:content:|:date
event:|:Test:|:paragraph 1
paragraph 2:|:September 29th, 2012
event:|:Website relaunch:|:Keep your eyes pealed.:|:September 25th, 2012
ご覧のとおり、文字列の結果、データベースで新しい行が使用されていますが、私は次のようなものを期待/望んでいます。
event:|:Test:|:paragraph 1 \n paragraph 2 :|:September 29th, 2012 //or
event:|:Test:|:paragraph 1 <br/> paragraph 2 :|:September 29th, 2012
私はオンラインで同様の質問を探してみましたが、すべての解決策は次のようなものを使用することを指していましたが、それは次のようなnl2br($_POST["new_content"]);
形式のテキストファイルを生成するようです:
type:|:heading:|:content:|:date
event:|:Test:|:paragraph 1<br />
paragraph 2:|:September 29th, 2012
event:|:Website relaunch:|:Keep your eyes pealed.:|:September 25th, 2012
元の問題がまだ続く場合。$_POST["new_content"]
誰かがこれが起こる理由を説明できますか、またはテキストファイルに保存する前に取得した文字列をフォーマットする方法について何か提案がありますか?助けていただければ幸いです!