通常來說在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...