2016-03-12 159 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的功能,如果你不指定長度,然後它會繼續從流中讀取,直到它到達行的末尾。