php實現讀取超大檔案的方法

2022-10-06 11:54:13 字數 1451 閱讀 3933

通常來說在php讀取大檔案的時候,我們採用的方法一般是一行行來講取,而不是一次性把檔案全部寫入記憶體中,這樣會導致php程式卡死,下面就給大家介紹這樣乙個例子。

讀取大檔案最後幾行資料:

<?php /**

* 取檔案最後$n行

* * @param string $filename 檔案路徑

* @param int $n 最後幾行

* @return mixed false表示有錯誤,成功則返回字串

*/function filelastlines($filename, $n)

$pos = -2;

$eof = "";

$str = "";

while($n > 0)else

}$str .= fgets($fp);

$eof = "";

$n–;

}return $str;

}echo nl2br(filelastlines('sss.txt', 4));

/** * * * 取檔案最後$n行 *

* * @param string $filename 檔案路徑 *

* @param int $n 最後幾行 *

* @return mixed false表示有錯誤,成功則返回字串

*/function filelastlines($filename, $n)

$pos = -2;

$eof = "";

$str = "";

w程式設計客棧hile($n > 0)else

}$str .= fgets($fp);

$eof = "";

$n--;

}return $str;

}echo nl2br(filelastlines('sss . txt', 4));

function tail($fp, $n, $base = 5)

catch (exception $e)

$pos *= $base;

while(!feof($fp))

}return array_slice($lines, 0, $n);

}var_dump(tail(fopen("access.log", "r+"), 10));

$fp = fopen($file, "r");

$line = 10;

$pos = -2;

$t = " ";

$data = "";

while ($line > 0)

$t = " ";

$data .= fgets($fp);

$line --;

}fclose ($fp);

echo $data;

?>

讀者可以根據該例項特點加以改進和完善,使之更加符合自身應用需求。

本文標題: php實現讀取超大檔案的方法

本文位址:

php 讀取超大檔案

php開發很多時候都要讀取大檔案,比如csv檔案 text檔案等。這些檔案如果很大,比如10個g。這時,直接一次性把所有的內容讀取到記憶體中計算不太現實。遇到這種情況,往往覺得php太弱,實則不然。利用生成器 關鍵字yield 就能解決。好了,上 created by phpstorm.user a...

php讀取超大檔案fseek

function readmaxfile fp start 0 fseek fp,start,seek set res fread fp,1 content res if substr content,strlen tag tag start 1 if feof fp sleep 3 echo 從位...

Python chunk讀取超大檔案

16gb小水存已經不能適應動輒4gb 8gb的資料檔案了。查詢到pandas的read csv 提供了chunk分塊讀取能力。這是一張原始的table in 185 table pd.read csv tmp.sv sep in 186 table out 186 unnamed 0 0 1 2 3...