- ベストアンサー
文字列内の改行表示方法について
- 文字列内の改行表示方法についての質問です。文字列内にある「\n」を改行として表示させたいのですが、文字列置換をしてもうまくいきません。他の方法はありますか?
- 文字列内の改行表示方法についての質問です。例えば、以下のような文字列を改行表示させたいと考えています。 「i.(h, s) 1. (馬が)速足(はやあし)で走る 2. (s)[口]急いでいく, 小走りに走る」 文字列置換を試したり、正規表現を利用したりしましたが、うまくいきません。他の方法を教えてください。
- 文字列内の改行表示方法について質問があります。以下のような文字列に含まれる「\n」を改行として表示させる方法を教えてください。 「i.(h, s) \n1. (馬が)速足(はやあし)で走る \n2. (s)[口]急いでいく, 小走りに走る」 文字列置換したり正規表現を使ったりしましたが、うまくいきませんでした。どうすれば改行表示できるでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ちょっと思ったのですが、 テキストエリアに移すのであれば、シングルクォーテーションじゃなく、ダブル・クォーテーションで括りさえすれば、ちゃんともとの\nで改行されますよ。 あと今回置換で使ったのはPerl互換の正規表現の方で、 個人的にそっちばかり使ってたのでpregの方を使いましたが、 eregでももちろんできます。 正規表現に興味を持たれたのであれば、 http://allabout.co.jp/computer/cgiperl/closeup/CU20010815A/index.htm こういうのや、(ガイド一覧から見れますが、No.7まであるようです。) http://www.din.or.jp/~ohzaki/perl.htm などが参考になると思われます。
その他の回答 (2)
- kusukusu
- ベストアンサー率38% (141/363)
$data = preg_replace('|\\\n|',"\n",$data); でいかかですか?
お礼
何度もご親切にご指導頂きありがとうございました。おかげさまで見事にできました。 ところで、置換の正規表現による書式の'|\\\n|のことですが、お願いがあります。いったい、どういうところに書式の解説が書かれているのか、ご紹介くださいませんか?私が持っている「プチリファレンス」やサイトの例の「PHPマニュアル」にはないような。。。
- the845t
- ベストアンサー率33% (246/743)
<?php $data='i.(h, s) \n1. (馬が)速足(はやあし)で走る \n2. (s)[口]急いでいく, 小走りに走る' ; $data = preg_replace('|\\\n|',"<br>",$data); print $data; ?> ではいかがでしょう。
お礼
ありがとうございました。print $data でたしかにブラウザはきちんと改行してくれました。 でも、これをHTMLの中に埋め込むため、 <TEXTAREA rows="13" cols="41" name="yakugo"><?print $data;?></TEXTAREA>とやりますと、次のように、改行が行なわれず、文字<BR>がそのまま表示されました: i.(h, s) <br>1. (馬が)速足(はやあし)で走る <br>2. (s)[口]急いでいく, 小走りに走る HTMLに埋め込むのがPHPの売りなのに、私にはまだそれが分かっていないみたいです。どうかご助言をお願いします。
お礼
the845tさま、正規表現は、それこそ「泥沼の正規表現」といった深い世界ですね。でもなぜ話がPerlの表現になっていくのでしょうか?PHP解説書も正規表現はあまり詳しくないと思いますが、その原因はやはりPerlの援用ですましているからなのでしょうね。 ありがとうございました。まだまだ沢山疑問がありますので、これからもよろしくお願いいたします。