亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php 中怎么使用fseek函數讀取大文件

發布時間:2021-07-14 15:59:17 來源:億速云 閱讀:148 作者:Leah 欄目:開發技術

這篇文章給大家介紹php 中怎么使用fseek函數讀取大文件,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

方法一:

首先通過fseek找到文件的最后一位EOF,然后找最后一行的起始位置,取這一行的數據,再找次一行的起始位置,再取這一行的位置,依次類推,直到找到了$num行。實現代碼如下:

整個代碼執行完成耗時 0.0095 (s)

function tail($fp,$n,$base=5)
{
  assert($n>0);
  $pos = $n+1;
  $lines = array();
  while(count($lines)< =$n){
    try{
      fseek($fp,-$pos,SEEK_END);
    } catch (Exception $e){
      fseek(0);
      break;
    }
    $pos *= $base;
    while(!feof($fp)){
      array_unshift($lines,fgets($fp));
    }
  }
  return array_slice($lines,0,$n);
}
var_dump(tail(fopen("access.log","r+"),10));

 方法二 :

還是采用fseek的方式從文件最后開始讀,但這時不是一位一位的讀,而是一塊一塊的讀,每讀一塊數據時,就將讀取后的數據放在一個buf里,然后通過換行符(n)的個數來判斷是否已經讀完最后$num行數據.實現代碼如下

整個代碼執行完成耗時 0.0009(s).

$fp = fopen($file, "r");
$line = 10;
$pos = -2;
$t = " ";
$data = "";
while ($line > 0) {
  while ($t != "n") {
    fseek($fp, $pos, SEEK_END);
    $t = fgetc($fp);
    $pos --;
  }
  $t = " ";
  $data .= fgets($fp);
  $line --;
}
fclose ($fp);
echo $data

關于php 中怎么使用fseek函數讀取大文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大冶市| 金乡县| 怀集县| 金平| 法库县| 武宁县| 禹州市| 宁波市| 安庆市| 高尔夫| 开江县| 鸡东县| 西城区| 肥东县| 泸西县| 开鲁县| 衡南县| 波密县| 道真| 长岭县| 年辖:市辖区| 富阳市| 阜阳市| 丽水市| 长乐市| 金湖县| 九江市| 乐亭县| 宝坻区| 亚东县| 宣威市| 崇义县| 离岛区| 崇州市| 萝北县| 甘洛县| 辽阳县| 临夏县| 苏尼特右旗| 库尔勒市| 崇仁县|