每天我会收到几个要导入数据库的CSV文件。
目前,某些列在一段文本中包含/r/n
。我不想循环所有行,因为一些文件有超过250k行,这将需要很长时间。
问题:
是否有str_replace
ALL的任何PHP函数(例如:/r/n
"
)给定整个文件的输入,而不是循环每行的行?
$csv = str_replace("\r\n", "", $csv);
$csv = str_replace("\r", "", $csv);
$csv = str_replace("\n", "", $csv);
答案 0 :(得分:1)
在php文件的开头添加;你可以增加执行时间,这取决于csv的大小
ini_set('max_execution_time', 300); //300 seconds = 5 minutes
<强>编码强>
/*************starts****************/
$file = 'yourfile.csv';
$search = '\r\n';
$replace = '';
$str = file_get_contents($file);
$str = str_replace($search, $replace, $str);
file_put_contents($file, $str);
/*************ends****************/
检索文件内容并进行搜索和替换
答案 1 :(得分:1)
二手作曲家,有效:https://packagist.org/packages/parsecsv/php-parsecsv。
<强>结果:强>
它将保留/r/n
和任何其他新行。它将保留值而不是将其拆分为新密钥。