我使用AJAX
从我服务器上的文件中获取一些JSON数据。
服务器端代码
$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
,我设法发现错误是由循环引起的,但我无法弄清楚是什么,因为我没有内部错误的日志。
答案 0 :(得分:-1)
当文件大小减小时,一切都很好。因此,它可能是内存耗尽/执行超时错误。
我不会立即打开整个文件的循环,而是根据最终用户需要显示的内容来限制它。