php – 读取大文件时出现内存不足错误

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 读取大文件时出现内存不足错误脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个大的csv,我想解析并插入我的数据库.我有这个 PHP
$target = '../uploads/'.$f;
$handle = foPEn($target,"r");
$data = fgetcsv($handle,",");

$rows = array();

while ($data !== FALSE) {
    $rows[] =  $data;
}

fclose($handle);

if (count($rows)) {
             foreach ($rows as $key => $value) {

                  echo $value;

              }
          }

每次我尝试运行我的脚本时都会收到此错误

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes)

任何想法如何做到一点

我认为这部分是错误的:
$data = fgetcsv($handle,");
$rows = array();
while ($data !== FALSE) {
    $rows[] =  $data;
}

一次调用fgetcsv从$handle中读取一行.你需要把fgetcsv放在循环条件中:

$handle = fopen($target,");
while (($row = fgetcsv($handle,")) !== FALSE) {
    // Example insert - obvIoUsly use PRepared statements/escaping/another DAL
    $db->query("INSERT INTO tbl (columns..) VALUES ({$row[0]},{$row[1]} ... )");
}

脚本宝典总结

以上是脚本宝典为你收集整理的php – 读取大文件时出现内存不足错误全部内容,希望文章能够帮你解决php – 读取大文件时出现内存不足错误所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。