使用PHP

时间:2017-09-28 09:24:32

标签: php csv

每天我会收到几个要导入数据库的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);

2 个答案:

答案 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和任何其他新行。它将保留值而不是将其拆分为新密钥。