Php导入64 mb时的大csv中断


Php Import large csv breaking when it is 64 mb

我在csv中有64MB的数据,当我试图在csv获取数据时,它会崩溃,我想在一个短时间内获取所有数据,这是我的代码。

$filename = $_FILES['inputfile']['tmp_name'];
$inputfilename = $_FILES['inputfile']['name'];
if (($handle = fopen($filename, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 5000, ",")) !== FALSE) {
$strContent[] = $data;
}
fclose($handle);
}
$_arrData = $strContent;

我怎么能得到那个。

可能是因为php.ini将文件上传限制为64mb。尝试添加:

upload_max_filesize = 128M
post_max_size = 128M

到您的php.ini。

或者使用.htaccess(仅当您的网络主机/网络服务器允许时):

php_value upload_max_filesize 128M
php_value post_max_size 128M

因为您可能需要在修改php.ini之后重新启动webserver。

P.S:不要使用ini_set()函数,而是使用php.ini文件。因为这些upload_max_filesize和post_max_size在运行时无法更改。上传大于php.ini中指定值的文件将导致在解析器执行ini_set()函数之前失败。