空のファイルでPHP feof($file)がfalseを返してしまう
解決済
50pt
1件
【エラー内容】
空のファイルでPHP feof($file)がfalseを返してしまう
【試した内容】
これがPHPコード
#!/usr/bin/php <?php if ($file = fopen("file.txt", "r")) { while(!feof($file)) { $line = fgets($file); echo "----" , $line , "----"; } fclose($file); } ?>
そして空のファイルfile.txt
[root@localhost]# ls -l file.txt -rw-r--r-- 1 root root 0 Апр 21 10:14 file.txt [root@localhost]# file file.txt file.txt: empty
最初のループでfopenがtrueになるはずなのに、なんか間違ってます?
[root@localhost ]# php -f test2.php -------- [root@localhost ]#
chrome
php
ベストアンサーに選ばれた回答
ファイルがすでに空ですが、PHPはfgets()メソッドを実行するまで認識できないからです
PHPが最初の空行を読み取らないようにするには、fgets()がfalseでないことを確認する必要があります。
こんな感じでどうでしょうか?
PHPが最初の空行を読み取らないようにするには、fgets()がfalseでないことを確認する必要があります。
こんな感じでどうでしょうか?
if ($file = fopen("file.txt", "r")) { while (($line = fgets($file)) !== false) { echo "----" , $line , "----"; } fclose($file); }
回答の編集
この質問はすでに終了しているため変更できません