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

前端之家收集整理的这篇文章主要介绍了浅析php中如何在有限的内存中读取大文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

<div class="codetitle"><a style="CURSOR: pointer" data="44813" class="copybut" id="copybut44813" onclick="doCopy('code44813')"> 代码如下:@H_404_6@<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($filehandle);
@H
404_6@

读取处理代码如下:

<div class="codetitle"><a style="CURSOR: pointer" data="36527" class="copybut" id="copybut36527" onclick="doCopy('code36527')"> 代码如下:@H_404_6@<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($filehandle);
@H
404_6@

猜你在找的PHP相关文章