アプリ版:「スタンプのみでお礼する」機能のリリースについて

Perlのprint命令では、print '(1)aaaa <BR>(2)bbbb',"\n"; というように、改行させたい箇所に<BR>を挿入すれば改行させられるとおもいます。ところが、print "<textarea> xxx </textarea>" として、CGIで複数行入力領域を書いたときは、xxxのなかに挿入した<BR>はそのまま文字として表示されてしまいます。
 改行させるにはどうしたらいいのでしょうか?
 どなたか(ひきつづき^^;;)、御教示をいただければ幸いです。

A 回答 (2件)

シングルクォーテーションでは特殊記号をエスケープしてそのまま表示してしまいます。

''内では変数も展開されません。
CGIで出力したHTMLのソースを見やすくするために
print '(1)aaaa <BR>(2)bbbb',"\n";
と改行記号を入れますよね、このとき \n は""でくくられてますね。
'(1)aaaa <BR>(2)bbbb' と "\n" を切り離しているのはこのためです。

$data=' [前置詞と共に] '."\n".'[unterと共に] '."\n".'unter der Hand ひそかに, こっそり(=unterderhand) '."\n".'etw unter der Hand erhalten <kaufen> …をひそかに入手<購入>する; '."\n".'etw unter den Haenden haben…に従事している;';

としてみるとどうですか?
    • good
    • 0
この回答へのお礼

$data=~ s/\\n/\n/g;
として、<textarea>$data></textarea>で解決しました。
ありがとうございました。

お礼日時:2003/10/20 22:59

<br> は改行タグですがテキストエリアなどではそのまま表示されてしまいます。


改行させたい場所で改行記号 \n を入れればいいです。

AAAA
BBBB

と表示させるには AAAA\nBBBB としてやります。
    • good
    • 0
この回答へのお礼

imasyuさま、ご回答ありがとうございました。
問題のテキストデータは,例えば:
$data=' [前置詞と共に] \n[unterと共に] \nunter der Hand ひそかに, こっそり(=unterderhand) \netw unter der Hand erhalten <kaufen> …をひそかに入手<購入>する; \netw unter den Haenden haben…に従事している;';
なんですが、これを
print >>EOD;
。。。。
<textarea>$data</textarea>
EOD
と書いてみると、おっしゃるとおりにはいきませんでした。\nはすべてそのまま文字として出てしまいました。
原因はどこにあるのでしょうか?やはり、シングル/ダブルのクオーテーションマークの問題なんでしょうか?済みませんが、ぜひお教え下さい。

お礼日時:2003/10/20 21:44

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