相关疑难解决方法(0)

处理非常大的csv文件,没有超时和内存错误

目前我正在编写一个非常大的CSV文件的导入脚本.问题大部分是由于超时而在一段时间后停止或者引发内存错误.

我的想法现在是以"100行"步骤解析CSV文件,然后100行自动调用脚本.我试图通过标题(位置...)实现这一点,并使用get传递当前行,但它没有按我想要的那样工作.

有没有更好的方法,或有人知道如何摆脱内存错误和超时?

php csv import timeout

25
推荐指数
3
解决办法
5万
查看次数

file_get_contents => PHP致命错误:允许的内存耗尽

我在处理大文件时没有经验,所以我不知道该怎么做.我试图使用file_get_contents读取几个大文件; 任务是使用preg_replace()清理和消除它们.

我的代码在小文件上运行良好; 但是,大文件(40 MB)会触发内存耗尽错误:

PHP Fatal error:  Allowed memory size of 16777216 bytes exhausted (tried to allocate 41390283 bytes)
Run Code Online (Sandbox Code Playgroud)

我正在考虑使用fread(),但我不确定它是否也能正常工作.这个问题有解决方法吗?

感谢您的输入.

这是我的代码:

<?php
error_reporting(E_ALL);

##get find() results and remove DOS carriage returns.
##The error is thrown on the next line for large files!
$myData = file_get_contents("tmp11");
$newData = str_replace("^M", "", $myData);

##cleanup Model-Manufacturer field.
$pattern = '/(Model-Manufacturer:)(\n)(\w+)/i';
$replacement = '$1$3';
$newData = preg_replace($pattern, $replacement, $newData);

##cleanup Test_Version field and create comma delimited layout. …
Run Code Online (Sandbox Code Playgroud)

php

24
推荐指数
2
解决办法
5万
查看次数

使用php将大型csv文件导入mysql数据库

我有一个非常大的CSV文件(150 MB).将它导入MySQL的最佳方法是什么?在将它插入MySQL表之前,我必须在PHP中进行一些操作.

php mysql import-from-csv

7
推荐指数
1
解决办法
6135
查看次数

标签 统计

php ×3

csv ×1

import ×1

import-from-csv ×1

mysql ×1

timeout ×1