2016-03-12 4 views
0

У меня есть функция, которая читает комментарии в текстовом файле. Комментарий может длиться до конца строки, если нет конца строки, она длится до конца файла. Моя проблема заключается в том, что я не могу узнать, как проверить ее, достигнут ли конец файла. Сначала у меня было так:Как правильно прочитать файл в EOF

while($char != "\n" && $char != false){ 
    $char = fgetc($inputFile); 
} 

Если есть в комментарии он закончил цикл, который я не хотел 0. Тогда я пробовал это:

while($char != "\n" && !feof($inputFile)){ 
    $char = fgetc($inputFile); 
} 

Это разрушило всю программу. Я пытался что-то сделать, но feof и != false - это все, что я нашел.

ответ

0

Использование !== для проверки FALSE:

while($char != "\n" && $char !== FALSE){ 
    $char = fgetc($inputFile); 
} 
+0

Да, я пробовал '! ==' тоже, но моя программа запускается после него. Я не знаю, почему, потому что с '! =' Он работал нормально, он разбился только тогда, когда он пришел к символу '0'. – sykatch

+0

Я только узнал, что ошибка была где-то еще в скрипте, '! ==' отлично работает сейчас, спасибо. – sykatch

0

Вместо этого вы можете прочитать файл, пока он не достигнет конца строки!

Вы можете попробовать feof функцию проверки конца файла.

//Output a line of the file until the end is reached 
while(!feof($file) { 
    echo fgets($file) . "<br />"; 
} 
fclose($file); 

Для функции fgets, если не указать длину, то он будет продолжать читать из потока до тех пор, пока не достигнет конца строки.