亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP中feof()函數實例測試

2024-09-04 11:43:12
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP中feof()函數實例測試,需要的朋友可以參考下

本文實例講述了PHP中的feof()函數的用法,針對feof()函數進行了一定的測試,很有實用價值。具體分析如下:

本文實例運行環境:

OS:Mac OS X 10.8.4

PHP:5.3.15

在PHP的官方手冊中,函數feof()下面的討論不少,對此做了一些相關的測試如下。

測試代碼如下:

  1. <?php 
  2. print <<<EOF 
  3. <!DOCTYPE html> 
  4. <html> 
  5.   <head> 
  6.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
  7.     <title>測試PHP中的feof()函數效果</title> 
  8.   </head> 
  9.   <body> 
  10.     <div> 
  11. EOF; 
  12. function bool2str($bool) { 
  13.   if ($bool == TRUE) { 
  14.     return "TRUE"
  15.   } else { 
  16.     return "FALSE"
  17.   } 
  18. /* 
  19.  * 請隨便創建一個文件。 
  20.  * 比如:本測試中,在腳本文件的相同路徑下創建了一個文本文件, 
  21.  * 文件內容為“abcdefg”,文件名為“7bytesfile”。 
  22.  */ 
  23. $filename = './7bytesfile'
  24. $handle = fopen($filename'r'); 
  25. if (!$handle) { 
  26.   die("文件打開失敗"); 
  27. for($i = 0; $i <= filesize($filename); $i++) { 
  28.   fseek($handle$i); 
  29.   echo "文件位置" . ftell($handle) . ":<br />/n"
  30.   echo "執行fseek,尚未執行讀取操作之前,feof結果:" . bool2str(feof($handle)) . "<br />/n"
  31.   echo "當前位置字符:" . fgetc($handle) . "<br />/n"
  32.   echo "執行文件讀取操作之后,feof結果:" . bool2str(feof($handle)) . "<hr />/n"
  33. /* 
  34.  * 通過上面一段代碼可以觀察到, 
  35.  * 隨著循環的執行,文件指針從文件頭一直移動到文件末尾。 
  36.  * 但是當完成了字符“g”的讀取輸出,文件指針繼續向后移動,這是feof()依然返回False。 
  37.  * 只有當執行了一次fgetc()操作之后,才返回true,表示到達文件末尾。 
  38.  */ 
  39. echo "ftell()結果:"ftell($handle). "<hr />/n"
  40. //輸出一下,很郁悶的發現文件指針的位置還是7。+_+ 
  41.  
  42. fseek($handle, 4); 
  43. echo "文件位置" . ftell($handle) . ":<br />/n"
  44. echo "執行fseek,尚未執行讀取操作之前,feof結果:" . bool2str(feof($handle)) . "<br />/n"
  45. echo "當前位置字符:" . fgetc($handle) . "<br />/n"
  46. echo "執行文件讀取操作之后,feof結果:" . bool2str(feof($handle)) . "<hr />/n"
  47.  
  48. fseek($handle, 7); 
  49. echo "文件位置" . ftell($handle) . ":<br />/n"
  50. echo "執行fseek,尚未執行讀取操作之前,feof結果:" . bool2str(feof($handle)) . "<br />/n"
  51. echo "當前位置字符:" . fgetc($handle) . "<br />/n"
  52. echo "執行文件讀取操作之后,feof結果:" . bool2str(feof($handle)) . "<hr />/n"
  53. fclose($handle); 
  54. //再次移動文件指針,效果依舊。 
  55. //再用另外一段代碼測試一下: 
  56.  
  57. $handle = fopen($filename'r'); 
  58. if (!$handle) { 
  59.   die("文件打開失敗"); 
  60. while (!feof($handle)) { 
  61.   $char = fgetc($handle); 
  62.   if ($char === FALSE) { 
  63.     echo 'FALSE'
  64.   } else { 
  65.     echo $char
  66.   } 
  67. fclose($handle); 
  68. //依然是輸出了字符g之后,再次執行讀取操作,才終止循環。 
  69.  
  70. print <<<EOF 
  71.     </div> 
  72.   </body> 
  73. </html> 
  74. EOF; 
  75. ?> 

針對這種情況的猜測是,在PHP中,feof()的實現方式并非直接檢查文件指針相對于文件的位置,而是根據某個標識返回結果。每次fseek()之后都會都會把這個標識設置為“False”,只有當執行一次文件內容讀取操作之后,才會根據文件讀取的結果對標識進行設置。

根據這種猜測,可以使用兩種代碼邏輯。

一個方法是不做feof()檢測,直接檢測內容讀取函數(比如fgetc()、fgets())的執行結果。

示例代碼如下:

  1. while (($content = fgets($fileHandle)) !==FALSE) { 
  2.    //文件內容處理……  

這種處理辦法,利用了PHP被詬病的函數返回方式,所以得用“===”或“!==”進行檢測,不能把代碼簡化成:

while ($content = fgets($fileHandle)) {}

另外一個方法是先進行一次文件讀取,然后再進入feof()循環,如下所示:

  1. $content = fgets($fileHandle); 
  2. while (!feof($fileHandle)) { 
  3.   //處理文件內容…… 
  4.   $content = fgets($fileHandle);  

經過測試,前一種方法效率會高一些。

希望本文示例對大家PHP程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久热99视频在线观看| 国产欧美一区二区三区在线看| 国产精品成人久久久久| 欧美午夜精品久久久久久人妖| 亚洲精品xxxx| 国产一区二区三区免费视频| 成人h视频在线观看播放| 精品视频在线导航| 国产999精品视频| 欧美在线不卡区| 国产一区二区三区欧美| 欧美精品成人91久久久久久久| 亚洲国产精品成人一区二区| 欧美电影《睫毛膏》| 日韩av三级在线观看| 国产精品999999| 日韩精品免费看| 亚洲国内精品视频| 日韩在线观看网址| 国产精品免费久久久| 亚洲人成亚洲人成在线观看| 奇米成人av国产一区二区三区| 国产精品久久久久久久久久久久久| 亚洲在线免费视频| 尤物yw午夜国产精品视频| 日韩av电影手机在线观看| 亚洲大胆人体av| 91精品啪在线观看麻豆免费| 欧美视频在线观看 亚洲欧| 国产精品三级久久久久久电影| 成人中心免费视频| 亚洲精品久久久久| 日韩中文字幕久久| 国产主播在线一区| 精品精品国产国产自在线| 亚洲欧美日韩中文在线制服| 全亚洲最色的网站在线观看| 97在线视频免费看| 欧美激情精品久久久久久| 亚洲aa中文字幕| 亚洲高清一二三区| 亚洲精品动漫100p| 国产精品久久久久av| 日韩在线欧美在线| 国产日韩av高清| 欧美视频在线看| 亚洲人成电影网| 久久久久久久久久久成人| 国产精品1234| 久久精品国产成人| 亚洲精品久久久久| 奇米成人av国产一区二区三区| 久久精品中文字幕| 亚洲最新av网址| 亚洲影院污污.| 18一19gay欧美视频网站| 日韩视频免费在线观看| 欧美韩国理论所午夜片917电影| 欧美乱妇高清无乱码| 久久久精品久久久久| 欧美日韩第一视频| 成人免费淫片aa视频免费| 91久久精品美女高潮| 欧美日韩电影在线观看| 日av在线播放中文不卡| 91精品免费久久久久久久久| 久久艹在线视频| 最新国产精品拍自在线播放| 九九久久久久久久久激情| 亚洲国产精品成人一区二区| 国产99久久精品一区二区永久免费| 日韩av成人在线| 欧美另类极品videosbest最新版本| 国产成人精品综合| 久久97精品久久久久久久不卡| 777午夜精品福利在线观看| 亚洲开心激情网| 中文字幕日韩专区| 国产欧美 在线欧美| 亚洲国产天堂久久综合| 国产精品白丝jk喷水视频一区| 国a精品视频大全| 国内精品久久久久久久久| 色婷婷成人综合| 欧美日韩国产中文精品字幕自在自线| 蜜臀久久99精品久久久无需会员| 国产精品你懂得| 96sao精品视频在线观看| 日韩欧美国产高清91| 欧美国产日韩一区| 国产一区玩具在线观看| 欧美精品久久久久久久免费观看| 国产福利精品在线| 欧美在线亚洲一区| 国产视频久久久久久久| 欧美亚洲国产日韩2020| 日本免费久久高清视频| 欧美成人午夜激情在线| 成人黄色大片在线免费观看| 亚洲区中文字幕| 亚洲第一区第一页| 国内免费久久久久久久久久久| 日韩精品免费在线观看| 精品亚洲男同gayvideo网站| 欧美成人精品在线观看| 亚洲国产欧美一区| 国产精品永久免费视频| 91午夜在线播放| 亚洲男人的天堂在线播放| 欧美另类第一页| 亚洲成人a**站| 精品国产91久久久久久| 日韩a**中文字幕| 亚洲成人精品久久| 日韩精品在线免费播放| 精品久久久久久久久久久| 中文字幕日韩免费视频| 在线观看欧美视频| 国产精品第一第二| 亚洲人免费视频| 亚洲国产欧美日韩精品| 亚洲黄色av网站| 久久精品免费电影| 国产视频福利一区| 欧美日韩中文字幕在线视频| 91精品国产综合久久久久久久久| 国产精品91久久久| 中文字幕av一区二区三区谷原希美| 伊人伊成久久人综合网小说| 成人免费淫片视频软件| 永久免费毛片在线播放不卡| 久久久噜久噜久久综合| 国产欧美日韩中文字幕在线| 欧美壮男野外gaytube| 欧美激情a∨在线视频播放| 精品久久久中文| 91大神福利视频在线| 2018中文字幕一区二区三区| 国产精品第1页| 欧美激情手机在线视频| 久久精品国产欧美亚洲人人爽| www.欧美精品一二三区| 日韩av在线网站| 国产精品久久久久久久久影视| 另类视频在线观看| 精品视频中文字幕| 中文字幕免费精品一区| 日韩在线中文字幕| 5566日本婷婷色中文字幕97| 亚洲精品久久久一区二区三区| 欧美日韩在线免费观看| 久久亚洲精品小早川怜子66| 久久精品国产久精国产思思| 欧美日韩国产麻豆| 日韩美女视频免费在线观看| 中文字幕欧美精品在线| 精品国产一区二区三区久久狼黑人| 国产精品网站大全| 久久99精品久久久久久噜噜| 日韩精品在线观| 成人信息集中地欧美| 一个人看的www久久| 久久久噜噜噜久噜久久| 91精品免费久久久久久久久|