Я использую AJAX
, чтобы получить некоторые данные JSON из файла на моем сервере.PHP циклический просмотр внутренней ошибки файла без журналов
Серверный код
$file = fopen($path); /*~1M rows and ~650MB file*/
/*Headers*/
$cols = fgetcsv($file);
$cols[0] = 'id';
/*Loop through each line*/
$file_arr = [];
while (($line = fgetcsv($file)) !== FALSE) {
$file_arr[] = array_combine($cols,$line);
/*The code crashes somewhere during this loop*/
}
fclose($file);
/*Returns some JSON*/
Однако я получаю внутренняя ошибка, но нет ничего в файле журнала. Я добавил Log::Info
через мой код, и мне удалось обнаружить, что ошибка вызвана циклом, но я не могу понять, потому что у меня нет журнала для внутренней ошибки.
Являются ли ваши массивы '$ cols' и' $ line' равного размера? Другими словами, есть один элемент в каждом, потому что '$ cols' имеет ровно один элемент. Моя ставка '$ line' имеет более одного элемента. Это вернет FALSE, если количество элементов для каждого массива не равно. –
@JayBlanchard Вот что я предполагаю. Кроме того, я знаю, что цикл while может выполнять несколько итераций без каких-либо проблем. Тем не менее, я не могу точно исключить, что одна строка где-то может быть другого размера. – Wistar
. Вы можете протестировать '$ line', прежде чем выполнять какое-либо объединение, а затем выплевывать отчет об исключениях для тех строк, содержащих более одного элемента. –