//平常读取excel,一般使用phpexcel,但是碰到超大excel文件就很容易造成内存不足,无法加载。这时候可以使用yield生成器来帮忙。 //我的做法是:1.现将excel文件转换成csv文件 // 2.通过yield生成器逐行读取代码,然后插入到数据库中 ``` function read_file() { $filename = "a.csv"; $handle = fopen($filename, 'r'); //只要没结束,就一直轮训返回 while(!feof($handle)) { //第二个参数,读取长度,默认为1024 yield fgetcsv($handle); } fclose($handle); } function insert_db($arr) { $sql = 'insert into tb (field1,field2,field3) values ({$arr[0]},{$arr[1]},{$arr[2]})'; Db::execute($sql); } $lines = read_file(); foreach($lines as $k=>$line) { //插入到数据库 insert_db($line); } ```