2013-05-25 132 views
0

我試圖打開一個文件,但文件輸出不正確,因爲輸出是文件中數據的一半。我不知道解決方案來解決這個問題PHP fopen()工作不正確

<?php 
    $handle = fopen("data/weather.arff", "r"); 
      while ($buffer = fgetc($handle)) { 
       $result .= $buffer; 
      } 
    echo $result; 
    ?> 
+0

'weather.arff'是什麼樣的? –

+4

爲什麼不使用[file_get_contents()](http://php.net/manual/en/function.file-get-contents.php)?另外,爲什麼在開始和結束標記中有空格 –

+1

另外,考慮編寫你的循環條件,如:while(false!==($ char = fgetc($ fp))){'以返回非布爾值的可能性評估爲假 –

回答

0

我不知道爲什麼我不能評論(也許缺乏聲譽)。你用過「b」二進制模式嗎?
像這樣:

<?php 
$handle = fopen("http://www.example.com/", "rb"); 
$contents = ''; 
while (!feof($handle)) { 
    $contents .= fread($handle, 8192); 
} 
fclose($handle); 
?> 

來源function.fread

1

while ($buffer = fgetc($handle)) {如果你得到一個NULL字符或數字爲零可以評估爲假。爲了避免這種情況,請使用嚴格類型比較(如while (($char = fgetc($fp)) !== false) {),以確保您不會將這些其他字符評估爲false。