Я использую fgetcsv внутри цикла, который генерирует имя файла для открытия на основе
функция glob ().
Он работал нормально, но остановился на файле с именем 9999.csv, что заставило меня поверить, что где-то установлен предел, однако я установил предел в функции равным 0 (без ограничений), поэтому я озадачен, почему он прекратил обработку файлы
У меня запущен фоновый скрипт, и каждые 5 секунд генерируются новые csv-файлы, поэтому его нельзя было остановить (в настоящее время у меня есть 85 000 csv-файлов в каталоге и я запустил скрипт, когда было 48 000 файлов)
Вот мой код, если кто-то может найти способ обойти это было бы здорово
$files = glob("*.csv"); ## need glob for wildcards as scandir does not work
foreach ($files as $value) {
$fp = fopen($value, "r");
while( !feof($fp) ) {
if( !$line = fgetcsv($fp, 0, ',')) {
continue;
}
$importSQL = mysqli_query($dbc, "INSERT INTO `data` (`col1`,`col2`,`col3`,`col4`) VALUES('".$line[0]."','".$line[1]."','".$line[2]."','".$line[3]."')");
}
fclose($fp);
}
echo "Last File Processed - ".$value;
** Редактировать **
Также только для целей отладки:
Тип базы данных - MyISAM, теперь он имеет 6 934 460 строк и составляет 872,9 МБ
.