プロが教えるわが家の防犯対策術!

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

$text =~ s/\r\n/<br>/g;
$text =~ s/\r/<br>/g;
$text =~ s/\n/<br>/g;
で確認画面上で表示されるtextareaの文章は改行されるのですが、
届いたメールには<br>と表示されてしまって困ってます。

PHPでは変換できるみたいなのですが、perlでも出来るのでしょうか?

A 回答 (4件)

$text =~ s/<br>|<BR>|<Br>|<bR>/\n/;


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

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

お礼日時:2008/09/17 17:02

>>$text =~ s/<br>|<BR>|<Br>|<bR>/\n/;


>そんなに一生懸命自分で組み合わせを列挙しなくても
油断しちゃダメよという意味でわかりやすく書いたつもりなんですが。
それなら「g」オプションもつけるべきかと
    • good
    • 0

>$text =~ s/<br>|<BR>|<Br>|<bR>/\n/;


そんなに一生懸命自分で組み合わせを列挙しなくても

$text =~ s/<br>/\n/i;

で十分です。
#BRでも同じ
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/17 17:07

<br>はHTMLでは改行を意味しますけど、メールは普通テキストなので、<br>とそのまま表示されてしまいます。



メールでも改行したいのであればテキストメールを送るのではなく、HTMLメールにすれば改行されるはずです。

HTMLメールが嫌でテキストメールでなければいけないのであれば、メールを送る前に<br>をもう一度改行コードに変換する処理をしてやらなければいけません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/17 17:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!