• 締切済み

改行の変換がうまく出来ていない?

perlの更新記録CGIを改造中です。 テキストエリアを数個設置しているのですが、うまく保存が出来ません。 新規情報を入力するときはちゃんと改行したいデータも保存されます。しかし、修正画面で、何もしないでそのまま保存し直したところ、変に改行が入ってしまいます。(情報の途中で改行が入るので、ゴミレコードが増えてしまう。) 修正画面からログに書き込む手前で<BR>の変換をしていますが、何が間違っているのでしょうか? $in{'kouc1'} =~ s/\r\n/<br>/g; $in{'kouc1'} =~ s/\r/<br>/g; $in{'kouc1'} =~ s/\n/<br>/g; $in{'kouc2'} =~ s/\r\n/<br>/g; $in{'kouc2'} =~ s/\r/<br>/g; $in{'kouc2'} =~ s/\n/<br>/g; $in{'kouc3'} =~ s/\r\n/<br>/g; $in{'kouc3'} =~ s/\r/<br>/g; $in{'kouc3'} =~ s/\n/<br>/g; 新規入力のほうもまったく同じ状態ですが、こちらは正常に保存されます。 足りない情報があればすぐに指摘をお願いします。

みんなの回答

  • pipipi523
  • ベストアンサー率40% (148/365)
回答No.1

変わらないとは思いますが、 $in{'kouc1'} =~ s/\x0D\x0A|\x0D|\x0A/<br>/g; と、してはどうでしょうか? ちなみに、修正画面で新しく文章を入力して保存した場合はどうなりますか? 意図しない改行が入ってしまう場合は保存処理、 意図した通りの改行が入る場合は修正画面を出す処理に問題があると切り分けられると思います

master-3rd
質問者

お礼

返答ありがとうございました。 原因が良くつかめなかった為最初からやり直したところ無事動作しました。

関連するQ&A