WordPress 사이트의 관리 섹션에 웹 인터페이스가 내장되어 있습니다. 그것은 내 데이터베이스에있는 몇 가지 테이블을 긁어 그냥 행별로 큰 데이터 목록을 표시합니다. 이 데이터에는 약 30,000 개의 행이 있으며 for 루프에 기본 에코가 표시됩니다. 한 페이지에 30,000 개의 행을 모두 표시하면 문제가 없습니다.예기치 않게 PHP 서버 파일 다운로드가 끊깁니다.
또한 전체 데이터 행의 CSV 파일을 다운로드하는 옵션이 포함되어 있습니다. 나는 fopen
과 fputcsv
을 사용하여 데이터 쿼리 결과에서 다운로드 할 CSV 파일을 작성합니다. 이 기능을 사용해 보았지만 데이터 세트가 30,000에 이르면 CSV가 더 이상 올바르게 생성되지 않습니다. 대부분의 데이터를 제외하고 처음 200 ~ 1000 행이 CSV 파일에 기록됩니다. 내 경우 올바르게 생성되지 않은 CSV는 약 10 메가가 될 것으로 예상합니다. 그런 다음 모든 파일이 제대로 작동하고있는 것처럼 파일은 처음 200 ~ 1000 행을 다운로드합니다. 내가 다운로드 할 수있는 전체 CSV 파일을 얻기 위해 변경할 필요가 무엇인지 확실하지 않다
// This gets a huge list of data from a SP I built. This data is well formed
$data = $this->run_stats_stored_procedure($job_to_report);
// This is where the data is converted into a csv file. This part is broken
// the file may already exist at that location burn it down if it does
if(file_exists(ABSPATH . "some/path/to/my/file/csv_export.csv")) {
unlink(ABSPATH . "some/path/to/my/file/csv_export.csv");
}
$csv_file_handler = fopen(ABSPATH . "some/path/to/my/file/candidate_export.csv", 'w');
if(!empty($csv_file_handler)) {
$title_array = array(
"ID",
"other_feild"
);
fputcsv($csv_file_handler, $title_array, ",");
if(!empty($data)) {
foreach($data as $data_piece) {
$array_as_csv_line = array();
foreach($data_piece as $object_property) {
$array_as_csv_line[] = (string)$object_property;
}
fputcsv($csv_file_handler, $array_as_csv_line, ",");
unset($array_as_csv_line);
}
} else {
fputcsv($csv_file_handler, array("empty"), ",");
}
// pros clean everything up when they are done
fclose($csv_file_handler);
}
: 여기
는 코드입니다. 나는 이것이 설정 문제 일 수 있다고 생각하지만 나는 그렇게하지 않아야한다. 나는이 기능이 20,000 개의 csv 행을 처리하는 데 사용 되었기 때문에 이것을 믿게되었습니다. 이제는 30,000 개가됩니다. 추가 정보가 도움이되는지 알려주세요. 전에 거대한 CSV 파일로 문제가 발생한 사람 있습니까? 도와 줄 수있는 사람에게 감사드립니다.