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

abby marcians @ d6.dion.ne.jp
2004年 4月 4日 (日) 18:16:44 JST


 abbyです。

 現在ファイルを読み込み、空行であれば<HR>タグを利用して
線を引くようなプログラムを作っています。
 fopenでファイルを読み込み指定にして、fgets関数にて
一行ずつ読み込んで、空行かどうかを判断するためにいくつかの
判定を行ってみましたが、空行を正しく判定してくれません。
メールの最後にそのソースと利用したファイル内容を記述しています。

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

 単純に「""」で判定が正にならない理由と、正規表現で
判定する方法がわからないのでメールした次第です。
ここが間違ってるもしくはアドバイスがいただけると嬉しいのですが。

よろしくお願いします。

環境:Windows XP sp1
      Apache 1.3.29
      PHP4.3.5

<!-- プログラムソース -->
<?php
  $fp = fopen("readtxt.txt", "r");
  while($str = fgets($fp)) {

    // 文字列比較
    if ($str == "") {
      print "ここで改行<BR>";
      print "<HR>";
    }

    // 正規表現による比較
    if (preg_match("/^\n/", $str)) {
      print "<HR>";
    }

    print $str . "<BR>";
  }
  fclose($fp);
?>

<!-- ファイル内容 -->
あああああ
いいいいい

ううう

えええ
おおおおお





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