php 使用file_get_contents讀取大文件的方法
當我們遇到文本文件體積很大時,比如超過幾十M甚至幾百M幾G的大文件,用記事本或者其它編輯器打開往往不能成功,因為他們都需要把文件內(nèi)容全部放到內(nèi)存里面,這時就會發(fā)生內(nèi)存溢出而打開錯誤,遇到這種情況我們可以使用PHP的文件讀取函數(shù)file_get_contents()進行分段讀取。
函數(shù)說明
string file_get_contents ( string $filename [, bool $use_include_path [, resource $context [, int $offset [, int $maxlen ]]]] )
和 file() 一樣,只除了 file_get_contents() 把文件讀入一個字符串。將在參數(shù) offset 所指定的位置開始讀取長度為 maxlen 的內(nèi)容。如果失敗,file_get_contents() 將返回 FALSE。
file_get_contents() 函數(shù)是用來將文件的內(nèi)容讀入到一個字符串中的首選方法。如果操作系統(tǒng)支持還會使用內(nèi)存映射技術(shù)來增強性能。
應(yīng)用:
$str = $content=file_get_contents("2.sql",FALSE,NULL,1024*1024,1024);
echo $str;
如果針對較小文件只是希望分段讀取并以此讀完可以使用fread()函數(shù)
$fp=fopen('2.sql','r');
while (!feof($fp)){
$str.=fread($fp, filesize ($filename)/10);//每次讀出文件10分之1
//進行處理
}
echo $str;
以上就是如何使用file_get_contents函數(shù)讀取大文件的方法,超級簡單吧,需要的小伙伴直接搬走!
相關(guān)文章
PHP實現(xiàn)網(wǎng)站應(yīng)用微信登錄功能詳解
這篇文章主要介紹了PHP實現(xiàn)網(wǎng)站應(yīng)用微信登錄功能,結(jié)合實例形式詳細分析了php實現(xiàn)微信授權(quán)登錄功能的具體操作步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-04-04php實現(xiàn)將二維關(guān)聯(lián)數(shù)組轉(zhuǎn)換成字符串的方法詳解
這篇文章主要介紹了php實現(xiàn)將二維關(guān)聯(lián)數(shù)組轉(zhuǎn)換成字符串的方法,涉及php數(shù)組遞歸遍歷、轉(zhuǎn)換、去重、拼接等相關(guān)操作技巧,需要的朋友可以參考下2017-07-07PHP常量使用的幾個需要注意的地方(謹慎使用PHP中的常量)
常量包含數(shù)字字母字符和下劃線,數(shù)字允許作為常量名。 常量名的所有字母必須大寫。類常量必須通過 const 定義為類的成員,強烈不鼓勵使用 define 定義的全局常量2014-09-09php開啟與關(guān)閉錯誤提示適用于沒有修改php.ini的權(quán)限
本節(jié)為大家介紹的是php開啟與關(guān)閉錯誤提示的方法,如果不具備修改php.ini的權(quán)限,可以將如下代碼加入php文件中2014-10-10PHP中fwrite與file_put_contents性能測試代碼
這里測試的是往文件中寫一百萬行記錄,如果數(shù)據(jù)量很小,比如1000條左右的記錄,可能差距不大2013-08-08ajax+php打造進度條代碼[readyState各狀態(tài)說明]
用Ajax+php打造進度條,其實很簡單。2010-04-04