标签:file eof fclose get open gets 例子 cti 协程
$file = "example.txt"; //10万行数据
功能:读取文件中的每一行并输出
方法一:常规方法
$fp = fopen($file,"r");
while(!feof($fp)){
$line = fgets($fp,1024);
}
fclose($fp);
使用内存:240 byte
方法二:使用协程
function getline($file){
$fp = fopen($file,"r");
while(!feof($fp)){
$line = fgets($fp,1024);
yield $line;
}
fclose($fp);
}
foreach(getline("example.txt") as $n=>$line){
}
使用内存:216 byte
从这个简单的例子可以看出,使用协程处理文件大约可以节省10%的内存分配,特别是在一些大的数组处理方面也可以尝试使用。
标签:file eof fclose get open gets 例子 cti 协程
原文地址:http://www.cnblogs.com/sblack/p/7383710.html