Я пытаюсь разобрать 6000 строк 500 КБ файла в массив, чтобы я мог импортировать данные в нашу систему. Проблема в том, что скрипт перестает выполняться где-то между строками 3000-4000. В коде нет разрывов, мы используем его для других импортных товаров. Любые идеи о том, почему это может происходить и что я могу сделать, чтобы предотвратить это?Скрипт умирает, я не уверен, почему
/**
* Takes a seperated value string and makes it an array
* @param $delimiter string The delimiter to be seperated by, usually a comma or tab
* @param $string string The string to seperate
* @return array The resulting array
*/
public function svToArray ($delimiter, $string) {
$x = 0;
$rowList = array();
$splitContent = preg_split("#\n+#", trim($string));
foreach ($splitContent as $key => $value) {
$newData = preg_split("#".$delimiter."#", $value);
if ($x == 0) {
$headerValues = array_values($newData);
} else {
$tempRow = array();
foreach ($newData as $rowColumnKey => $rowColumnValue) {
$tempRow[$headerValues[$rowColumnKey]] = $rowColumnValue;
}
$rowList[] = $tempRow;
}
$x++;
}
return $rowList;
}
UPDATE: Сообщения об ошибках включен. Я начал использовать файл, который только 130KB в 1500 строк, и он делает то же самое ...
Когда я добавляю отладки кода, как в следующем примере ничего перекликается вообще, пока я не положил выход после echo "test<br/>";
public function svToArray ($delimiter, $string) {
$x = 0;
$rowList = array();
$splitContent = preg_split("#\n+#", trim($string));
echo "test<br/>";
foreach ($splitContent as $key => $value) {
$newData = preg_split("#".$delimiter."#", $value);
if ($x == 0) {
$headerValues = array_values($newData);
} else {
$tempRow = array();
foreach ($newData as $rowColumnKey => $rowColumnValue) {
$tempRow[$headerValues[$rowColumnKey]] = $rowColumnValue;
}
$rowList[] = $tempRow;
}
$x++;
}
echo "test";
$this->tru->debug($rowList);
exit;
return $rowList;
}
UPDATE Если я закомментировать $tempRow[] = $rowColumnValue;
то перекликается все прекрасное ....
Что такое сообщение об ошибке? Включены ли сообщения об ошибках? –
Какая ошибка? убедитесь, что display_errors включен, а error_reporting - E_ALL. – AlfaTeK
Вы пробовали свой код с другим (возможно, меньшим) файлом? – nico