• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字列内の\nで改行表示させるための置換)

文字列内の改行表示方法について

このQ&Aのポイント
  • 文字列内の改行表示方法についての質問です。文字列内にある「\n」を改行として表示させたいのですが、文字列置換をしてもうまくいきません。他の方法はありますか?
  • 文字列内の改行表示方法についての質問です。例えば、以下のような文字列を改行表示させたいと考えています。 「i.(h, s) 1. (馬が)速足(はやあし)で走る 2. (s)[口]急いでいく, 小走りに走る」 文字列置換を試したり、正規表現を利用したりしましたが、うまくいきません。他の方法を教えてください。
  • 文字列内の改行表示方法について質問があります。以下のような文字列に含まれる「\n」を改行として表示させる方法を教えてください。 「i.(h, s) \n1. (馬が)速足(はやあし)で走る \n2. (s)[口]急いでいく, 小走りに走る」 文字列置換したり正規表現を使ったりしましたが、うまくいきませんでした。どうすれば改行表示できるでしょうか?

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

  • ベストアンサー
  • the845t
  • ベストアンサー率33% (246/743)
回答No.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 などが参考になると思われます。

tonka729
質問者

お礼

the845tさま、正規表現は、それこそ「泥沼の正規表現」といった深い世界ですね。でもなぜ話がPerlの表現になっていくのでしょうか?PHP解説書も正規表現はあまり詳しくないと思いますが、その原因はやはりPerlの援用ですましているからなのでしょうね。 ありがとうございました。まだまだ沢山疑問がありますので、これからもよろしくお願いいたします。

その他の回答 (2)

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

$data = preg_replace('|\\\n|',"\n",$data); でいかかですか?

tonka729
質問者

お礼

何度もご親切にご指導頂きありがとうございました。おかげさまで見事にできました。 ところで、置換の正規表現による書式の'|\\\n|のことですが、お願いがあります。いったい、どういうところに書式の解説が書かれているのか、ご紹介くださいませんか?私が持っている「プチリファレンス」やサイトの例の「PHPマニュアル」にはないような。。。

  • the845t
  • ベストアンサー率33% (246/743)
回答No.1

<?php $data='i.(h, s) \n1. (馬が)速足(はやあし)で走る \n2. (s)[口]急いでいく, 小走りに走る' ; $data = preg_replace('|\\\n|',"<br>",$data); print $data; ?> ではいかがでしょう。

tonka729
質問者

お礼

ありがとうございました。print $data でたしかにブラウザはきちんと改行してくれました。 でも、これをHTMLの中に埋め込むため、 <TEXTAREA rows="13" cols="41" name="yakugo"><?print $data;?></TEXTAREA>とやりますと、次のように、改行が行なわれず、文字<BR>がそのまま表示されました: i.(h, s) <br>1. (馬が)速足(はやあし)で走る <br>2. (s)[口]急いでいく, 小走りに走る HTMLに埋め込むのがPHPの売りなのに、私にはまだそれが分かっていないみたいです。どうかご助言をお願いします。

関連するQ&A