У меня есть следующий код, который принимает $filename
и проходит через него. Если 9-й столбец находится в массиве значений (здесь не показан), я его игнорирую.
В противном случае я записываю строку в файл, имя которого основано на 3-м столбце.
if (($handle = fopen($filename, "r")) !== FALSE) {
fgetcsv($handle);
while (($line = fgetcsv($handle, 2000, ";")) !== FALSE) {
if (!in_array($line[8], $exclude)) {
$d = str_replace('/','',$line[2]);
$f = fopen($base.$d.'.csv', "a");
fputcsv($f, $line);
fclose($f);
unset($line);
}
}
fclose($handle);
}
Это отлично работает. Однако это очень медленно. У меня есть 200Mb CSV, через который он проходит.
Мой вопрос: можно ли его оптимизировать и / или я делаю что-то трагически неправильно?
Спасибо