91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

成安县| 临湘市| 宿州市| 乌鲁木齐县| 溧水县| 庆云县| 苏尼特右旗| 诸暨市| 民和| 门头沟区| 甘洛县| 都昌县| 泸定县| 虎林市| 遂溪县| 横山县| 太原市| 临朐县| 忻州市| 宿迁市| 鸡西市| 凤城市| 桐庐县| 江都市| 平潭县| 余干县| 鄱阳县| 七台河市| 慈溪市| 唐海县| 邢台市| 怀安县| 房山区| 柳江县| 无为县| 高台县| 光山县| 静海县| 桃园县| 洛宁县| 托里县|