多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > php feof函數用法與注意事項

php feof函數用法與注意事項

來源:程序員人生   發布時間:2013-10-11 19:45:52 閱讀次數:2732次

eof() 函數檢測是否已到達文件末尾(eof).

如果文件指針到了 EOF 或者出錯時則返回 TRUE,否則返回一個錯誤(包括 socket 超時),其它情況則返回 FALSE.

語法:feof(file)

參數 描述

file 必需,規定要檢查的打開文件.

說明:file 參數是一個文件指針,這個文件指針必須有效,并且必須指向一個由 fopen() 或 fsockopen() 成功打開(但還沒有被 fclose() 關閉)的文件.

  1. <?php 
  2. $file = fopen("test.txt""r"); 
  3.  
  4. //輸出文本中所有的行,直到文件結束為止。 
  5. while(! feof($file)) 
  6.   { 
  7.   echo fgets($file). "<br />"
  8.   } 
  9.  
  10. fclose($file); 
  11. ?> 
  12.  
  13. if(file_exists($pmr_config["datasetfile"])){ 
  14.  $tmp_counter = 0; 
  15.  $hd = fopen($pmr_config["datasetfile"], "r"); 
  16.  if($hd !== FALSE){ 
  17.   while (!feof($hd)) { 
  18.    $buffer = fgets($hd); 
  19.                         if($tmp_counter >= $seq){ 
  20.     $result[] = $buffer
  21.    } 
  22.                 $tmp_counter++; 
  23.  
  24.                 if($tmp_counter >=$seq + $size){ 
  25.                     break
  26.                 } 
  27.  } 
  28.  }else
  29.   echo "warning:open file {$pmr_config["datasetfile"]} failed!PHP_EOL"
  30.  } 
  31. }else
  32.  echo "warning:file {$pmr_config["datasetfile"]} does not exsits!PHP_EOL"

其中當讀取行數包括文件結尾的時候,$result數組中總會比期望的內容多出來一個元素:

(boolean)false

按說,如果讀取到最后一行,feof函數會返回TRUE,然后while循環就退出了,為什么不是呢?

1

while (!feof($hd)) {

事情原來是這樣子的:

  1. <?php 
  2. // if file can not be read or doesn't exist fopen function returns FALSE 
  3. $file = @fopen("no_such_file""r"); 
  4.  
  5. // FALSE from fopen will issue warning and result in infinite loop here 
  6. while (!feof($file)) { 
  7.  
  8. fclose($file); 
  9. ?> 

feof() is, in fact, reliable.  However, you have to use it carefully in conjunction with fgets().  A common (but incorrect) approach is to try something like this:

  1. <? 
  2. $fp = fopen("myfile.txt""r"); 
  3. while (!feof($fp)) { 
  4.   $current_line = fgets($fp); 
  5.   // do stuff to the current line here 
  6. fclose($fp); 
  7. ?> 

提示和注釋:

提示:feof() 函數對遍歷長度未知的數據很有用。

注意:如果服務器沒有關閉由 fsockopen() 所打開的連接,feof() 會一直等待直到超時而返回 TRUE,默認的超時限制是 60 秒,可以使用 stream_set_timeout() 來改變這個值.

注意:如果傳遞的文件指針無效可能會陷入無限循環中,因為 EOF 不會返回 TRUE.

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 真实男女xx00动态视频 | 久久精品国产第一区二区 | 欧美日韩一区二区视频免费看 | japan色系videos强行 | 欧美1314www伊人久久香网 | 久久精品一 | 欧美性猛交xxxx乱大交蜜桃 | 国产欧美一区二区精品久久久 | 成人a网站| 国产成人免费永久播放视频平台 | 亚洲成人99 | 日韩有码在线视频 | 理论亚洲区美一区二区三区 | 伊人高清 | 欧美成人免费全部观看天天性色 | 欧美日韩亚洲高清老妇性 | 狠狠2020| 97精品伊人久久久大香线焦 | 久久久久久久久久久96av | 免费一区二区三区四区五区 | 女人18毛片视频一级毛片容 | 老王影院在线观看 | 亚洲在线天堂 | 羞羞网站在线看 | 成人在线免费小视频 | 伊人久久精品成人网 | 成人欧美一区二区三区在线观看 | 国产人成精品综合欧美成人 | 老司机免费福利视频无毒午夜 | www.看片 | 亚洲欧洲国产成人综合一本 | 欧美精品一级毛片 | 性欧美高清精品videos | 国产成人青草视频 | 国产成人精品日本亚洲网站 | 在线成h人视频网站免费观看 | 亚洲国产成人99精品激情在线 | 一级a毛片免费 | 欧美福利视频在线 | 亚洲成a人片毛片在线 | www.插插插|