[PHP-users 16686]Re: ログファイルの改行について
aiko
FR3A-YN @ asahi-net.or.jp
2003年 7月 14日 (月) 20:05:40 JST
aikoです
できました!解決しましたーーーっ
On 2003.7.14, at 05:03 PM, UNO Shintaro wrote:
>> 最近PHPをを始めて、さっそく掲示板をがんばってみました。
>
> んー、自作しなくてもPHP用掲示板スクリプトなんて山ほど転がってると
> 思いますが、わざわざ自分で書く理由は? 「お勉強」ですか?
はい、勉強中です。PHPは楽しいと感じています。(ヘンかな?)
たいへん可愛いらしい掲示板を考えたので、(笑)
ちゃんと動いてほしかったのです。
お見せしたいところなんですがまだアイコンが完成していません。
> file読み込みloopのところで、終了判定方法が間違ってます。
> 最後の行を読んだ直後にはまだfeofはtrueにはなりません。
> 最後の行の「次」をfgetcsvで読もうとするとfgetcsvがfalseを返します。
> その後でfeofを調べるとtrueになっています。
>
> aikoさんのcodeは「最後の行を読んだ直後に既にfeofがtrueになっている」と
> いう間違った前提の元で書かれているようで、最終行の処理の次にもう一回、
> 余計にloop内処理が行なわれます。そのときのfputs($ichigo,$data)において
> $dataの中身は、false(file末尾でのfgetcsvの結果)をexplodeしてimplode
> して改行をくっつけたものなので、結果として空行が追加されます。
大変よくわかりました。
本当に、ありがとうございます。
> ↑こうではなくて、↓こんな感じ(エラー判定などは略してますが)
>
> while($data = fgetcsv($fp,1024)){
> :
> :
> fputs($ichigo,$data);
> }
> fclose($ichigo);
> fclose($fp);
>
> にすれば現象は解消されると思います。
これは、末石さんが教えてくれた2つめの方法と同じで、
わたしの希望通りの結果がでました。
whileの中には、こんな入れ方があったんですね。
さっき返信させていただいたときは、
まだわかっていませんでしたが今わかりました。
(末石さん、正解だったのに私がわかるのが遅くてすみませんでした・・)
(Setoさん、再びありがとうございます)
皆さん、とても親切にしてくださって
本当にありがとうございました。
はぁ〜よかった。。
もっと早く聞けばよかったです。
同じこと2週間は考えていました(マジで、気もながいっス)
あきらめ寸前でしたが復活です。
----------------
aiko
FR3A-YN @ asahi-net.or.jp
PHP-users メーリングリストの案内