function readLocalFile($fileName)
{
$handle = fopen($fileName, 'r');
$lins = [];
while (!feof($handle)) {
$lines[] = fgets($handle);
}
fclose($handle);
return $lines;
}
function readYieldFile($fileName)
{
$handle = fopen($fileName, 'r');
while (!feof($handle)) {
yield fgets($handle);
}
fclose($handle);
}
// 便于测试我们写一个 内存显示函数
function formatBytes($bytes){
if($bytes<1024){
return $bytes."b";
}else if($bytes<1048576){
return round($bytes/1024,2)."kb";
}
return round($bytes/1048576,2)."mb";
}
// 文件都读取到内存
readLocalFile('./all.txt');
echo formatBytes(memory_get_peak_usage());//
一条提条读取 不占用内存 只是大概一条的量
$lines = readYieldFile('./all.txt');
foreach ($lines as $row) {
}
echo formatBytes(memory_get_peak_usage());