这类知识网上太多了,这里不做过多的介绍,只列举一下常用的使用场景
1.大文件的读取可使用
<?php
function aa($number){
for($i=0;$i<$number;$i++){
yield $i.'-'.time();
}
}
$result = aa(5);
foreach($result as $value){
sleep(1);//这里停顿1秒
echo $value.'<br />';
}
2.从数据导出大的数据量
$sql = 'select * from user';
$pdo = new \PDO('mysql:host=127.0.0.1;dbname=test', 'root', 'root');
$pdo->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
$rows = $pdo->query($sql);
$filename = date('Ymd') . '.csv'; //设置文件名
header('Content-Type: text/csv');
header("Content-Disposition: attachment;filename={$filename}");
$out = fopen('php://output', 'w');
fputcsv($out, ['id', 'username', 'password', 'create_time']);
foreach ($rows as $row) {
$line = [$row['id'], $row['username'], $row['password'], $row['create_time']];
fputcsv($out, $line);
}
fclose($out);
$memory = round((memory_get_usage() - $startMemory) / 1024 / 1024, 3) . 'M' . PHP_EOL;
file_put_contents('/tmp/test.txt', $memory, FILE_APPEND);
等很多地方都可以使用
更多详情的介绍可参考:
https://www.twle.cn/c/yufei/phpmiss/phpmiss-basic-generator.html