- ベストアンサー
CGIで改行タグを改行コードに変換ってできますか?
CGIで改行タグを改行コードに変換ってできますか? $text =~ s/\r\n/<br>/g; $text =~ s/\r/<br>/g; $text =~ s/\n/<br>/g; で確認画面上で表示されるtextareaの文章は改行されるのですが、 届いたメールには<br>と表示されてしまって困ってます。 PHPでは変換できるみたいなのですが、perlでも出来るのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
$text =~ s/<br>|<BR>|<Br>|<bR>/\n/; で戻せます。 が、メール用にオリジナルデータはいじらず 画面表示用に別途「$text」を作って改行コードを変換してはどうでしょうか。 例: my $text2 = $text; $text2 =~ s/\r\n|\r|\n/<br>/g; として$text2を表示用にした方が良いと思います。
その他の回答 (3)
- ralf124c
- ベストアンサー率52% (232/446)
>>$text =~ s/<br>|<BR>|<Br>|<bR>/\n/; >そんなに一生懸命自分で組み合わせを列挙しなくても 油断しちゃダメよという意味でわかりやすく書いたつもりなんですが。 それなら「g」オプションもつけるべきかと
- sakusaker7
- ベストアンサー率62% (800/1280)
>$text =~ s/<br>|<BR>|<Br>|<bR>/\n/; そんなに一生懸命自分で組み合わせを列挙しなくても $text =~ s/<br>/\n/i; で十分です。 #BRでも同じ
お礼
ご回答ありがとうございました^^ 省略も出来るのですね。勉強になりました^^
- buffalomasa
- ベストアンサー率66% (70/106)
<br>はHTMLでは改行を意味しますけど、メールは普通テキストなので、<br>とそのまま表示されてしまいます。 メールでも改行したいのであればテキストメールを送るのではなく、HTMLメールにすれば改行されるはずです。 HTMLメールが嫌でテキストメールでなければいけないのであれば、メールを送る前に<br>をもう一度改行コードに変換する処理をしてやらなければいけません。
お礼
ご回答ありがとうございました^^
お礼
ご回答ありがとうございました! ちょっと納期間に合わなくて、上記のは試せずに別cgiを利用してしまったのですが、今度試してみます! 丁寧な説明有難うございました^^