//平常讀取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);
}
```