[PHP-users 31451] Re: 空白行の削除について

菊澤 正明 kikuzawa @ cyber-coo.com
2007年 2月 13日 (火) 16:56:32 JST


菊澤 と申します。

On Tue, 13 Feb 2007 02:09:49 +0900 (JST)
ちさっち <heartlake2007 @ yahoo.co.jp> wrote:

> 現在、HTMLを読み込んで加工するプログラムを作っています。
> curl関数で取り込んだHTMLの内容から空白行を削除したいのですが、上手く動き
> ません。
ちさっちさんのなさろうとしているのは、下記の通りでいいですか?
・改行を含む文字列に対して、空白行の削除を行いたい
・空白行の定義は、行先頭から行終端まで、0個以上の空白文字で構成される。
・空白文字は、スペース、タブコードとする。

ereg_replaceでは、変換対象文字列を1行として扱うため、
先頭を評価する^は、変換対象文字列の先頭にのみ適用されます。
各行に対して評価されないみたいです。
preg_replaceで、m修飾子を使えば、各行に対して、先頭^、終端$
の評価が適用されるようになります。

こんな感じでどうでしょうか。

$contents = preg_replace("/^(\s)*(\r|\n|\r\n)/m", "", $html);

※終端$を使うと、終端(改行コード)直前までしかマッチしないので、
  改行コードを置き換えることができません。

--------------------------------------------
菊澤 正明  mailto:kikuzawa @ cyber-coo.com



PHP-users メーリングリストの案内