[PHP-users 21130]Re: ファイル読込後の正規表現による判定について
mutou @ bwn.jp
mutou @ bwn.jp
2004年 4月 5日 (月) 11:07:54 JST
武藤です、はじめまして。
ご質問の件ですが、以下のようになされては如何でしょうか。
------<phpソース>------
<html>
<head>
<title>LineReedTest</title>
</head>
<body>
<?php
$fp = fopen("readtxt.txt", "r");
while($str = fgets($fp)) {
// 文字列比較
$str = trim($str);
if ( !isset($str) || $str == "" ) {
print("<hr />\n");
}else {
print($str."<br />\n");
}
}
fclose($fp);
?>
</body>
</html>
------</phpソース>------
文字列比較の前に trim() にて空白を取り除くことにより、
お望みの結果を得られると思います。
因みに当方の環境(Fedora1+Apache2.0.48+PHP4.3.4)にて確認したところ、
以下のような結果を得られました。
-----<readtxt.txt>-----
あああああ
いいいいい
ううう
えええ
おおおおお
-----</readtxt.txt>-----
-----<PHP実行結果>-----
<html>
<head>
<title>LineReedTest</title>
</head>
<body>
あああああ<br />
いいいいい<br />
<hr />
ううう<br />
<hr />
えええ<br />
おおおおお<br />
</body>
</html>
-----</PHP実行結果>-----
以上です。
是非お試し下さい。
On 2004 Apr 04 18:16:44
abby <marcians @ d6.dion.ne.jp> wrote:
> 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 mailing list PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
>
>
Schuichi Mutou
mutou @ bwn.jp
PHP-users メーリングリストの案内