• ベストアンサー

CGIで改行タグを改行コードに変換ってできますか?

CGIで改行タグを改行コードに変換ってできますか? $text =~ s/\r\n/<br>/g; $text =~ s/\r/<br>/g; $text =~ s/\n/<br>/g; で確認画面上で表示されるtextareaの文章は改行されるのですが、 届いたメールには<br>と表示されてしまって困ってます。 PHPでは変換できるみたいなのですが、perlでも出来るのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.2

$text =~ s/<br>|<BR>|<Br>|<bR>/\n/; で戻せます。 が、メール用にオリジナルデータはいじらず 画面表示用に別途「$text」を作って改行コードを変換してはどうでしょうか。 例:  my $text2 = $text; $text2 =~ s/\r\n|\r|\n/<br>/g; として$text2を表示用にした方が良いと思います。

wancan
質問者

お礼

ご回答ありがとうございました! ちょっと納期間に合わなくて、上記のは試せずに別cgiを利用してしまったのですが、今度試してみます! 丁寧な説明有難うございました^^

その他の回答 (3)

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.4

>>$text =~ s/<br>|<BR>|<Br>|<bR>/\n/; >そんなに一生懸命自分で組み合わせを列挙しなくても 油断しちゃダメよという意味でわかりやすく書いたつもりなんですが。 それなら「g」オプションもつけるべきかと

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

>$text =~ s/<br>|<BR>|<Br>|<bR>/\n/; そんなに一生懸命自分で組み合わせを列挙しなくても $text =~ s/<br>/\n/i; で十分です。 #BRでも同じ

wancan
質問者

お礼

ご回答ありがとうございました^^ 省略も出来るのですね。勉強になりました^^

回答No.1

<br>はHTMLでは改行を意味しますけど、メールは普通テキストなので、<br>とそのまま表示されてしまいます。 メールでも改行したいのであればテキストメールを送るのではなく、HTMLメールにすれば改行されるはずです。 HTMLメールが嫌でテキストメールでなければいけないのであれば、メールを送る前に<br>をもう一度改行コードに変換する処理をしてやらなければいけません。

wancan
質問者

お礼

ご回答ありがとうございました^^