[PHP-users 21123]Re: ファイル読込後の正規表現による判定について

T.Okabe okabe @ nsd.jip.co.jp
2004年 4月 4日 (日) 18:33:32 JST


岡部といいます。

> 単純に文字列比較で「""」と等しい場合で判定できると
>思いましたがうまくいかないので、正規表現いよる判定も
>通してみましたがそれも判定が思うようにいかないようです。
>正規表現の「/^\n/」を「/\n/」と行うとマッチ関数なのに空行でない
>行までラインが引かれてしまいます。

fgetsの戻り値は確認してみたでしょうか?

マニュアルのfgetsのページにも以下のようにありますが、
1行読み出しには行末の改行コードが含まれます。

    読み出しは、length-1バイト読み出したか、
->  (返り値 に含まれる)改行文字を検出したか、
    EOFに達したかのいずれかが起こった時点で終了します。

従って、空行には改行コードのみが入っており、
他の行にも改行コードは入っています。

また、少し前にも話題になっていた気がしますが、
改行コードも主に3種類の組み合わせがあり得ますので、
改行をマッチさせるならその点も考慮する必要があります。


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