• ベストアンサー

空行を<br />に置換したい

今、ファイルの中身を読み込み、それを処理したいものがあります。 処理する過程で、 空行(スペース、タブしかない行も含む)を<br />に置換したいのですが、上手くいきません。 ex) 処理前 あいうえお ←半角スペース2個あると過程 か きくけこ さしせそ 処理後 あいうえお <br /> か <br /> きくけこ <br /> さしすせそ 現在、やってるスクリプトです。 $str = preg_replace("/^\s$/", "<br />", $str); これだと出来ません・・・。 (このままだと<br />に置換するとその行が改行され ませんでしたね><;) どうすると実現出来ますでしょうか?ご教示下さい。

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

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

こんな感じでしょうか・・ $str = preg_replace("/(^|\n)[\s]+(\n|$)/", "\\1<br />\\2", $str);

naktak
質問者

お礼

ありがとうございます。私も色々試したところ、そんな感じになりました!

その他の回答 (2)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

#2の方の回答のようにややこしいことせんでも 修飾子一個で解決しますよ。 $str2 = preg_replace("/^\s+$/m", "<br />", $str); print($str2);

naktak
質問者

お礼

ありがとうございます。 試した所、処理される所はいいみたいだったのですが、何故か<br />に置換されず、、、、でした。 後でじっくり確認してみようかと思います。

  • fire--
  • ベストアンサー率49% (146/293)
回答No.1

マニュアルにでてますが、以下では? >nl2br >(PHP 3, PHP 4 , PHP 5) > >nl2br -- 改行文字の前にHTMLの改行指定文字を挿入する >説明 >string nl2br ( string string) > >stringに含まれるすべての改行文字の 前に '<br />' を挿入して返します。

naktak
質問者

お礼

すみません、それだと あいうえお かきくけこ が あいうえお<br /> かきくけこ になってしまうのでNGです。 色々試した結果、自己解決しました。