浅析php中如何在有限的内存中读取大文件

正常情况下,我们可以使用fseek来读取,好处就是不会一次性读取,以下代码只适合边取边处理的情况,不适合一次性读取一次性处理。

<FONT style="COLOR: #ff0000">可以用以下办法生成测试文件

<div class="codetitle"><a style="CURSOR: pointer" data="44813" class="copybut" id="copybut44813" onclick="doCopy('code44813')"> 代码如下:
<div class="codebody" id="code44813">
$file_handle = fopen("./csdn.txt","rb+");
for ($index1 = 1; $index1 <= 2000000; $index1++) {
fwrite($file_handle,'http://jb51.cc'.$index1."\r");
}
fclose($file_handle);

读取处理代码如下:

<div class="codetitle"><a style="CURSOR: pointer" data="36527" class="copybut" id="copybut36527" onclick="doCopy('code36527')"> 代码如下:
<div class="codebody" id="code36527">
$i = 0;
$Now = '';
while ($i >= 0) {
if ($i>10) {
break;
}
fseek($file_handle,SEEK_CUR);
$Now = fgetc($file_handle);//可以自己写个判断false表示文件到头
if ($Now == "\r") {
echo '找到断点';
}
echo $Now;
$i++;
}
fclose($file_handle);

读取大文件

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...