단일 CSV 파일이 포함 된 웹 서버에서 zip 파일을 다운로드 한 다음로드하려면 PHP 스크립트를 작성하려고합니다. 추출 된 CSV 파일의 내용을 기존 MySQL 데이터베이스 테이블에 저장합니다.압축 된 CSV를 압축 해제하고 CSV 파일의 내용을 MySQL 테이블에 가져 오는 방법
$targetFile = 'data-' . md5(microtime()) . '.zip';
$url = 'http://www.address.com/data.zip';
$out = fopen('/path/to/zip/save/folder/' . $targetFile , 'wb');
$ch = curl_init();
curl_setopt($ch, CURLOPT_FILE, $out);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_exec($ch);
$info = curl_getinfo($ch);
if($info['http_code'] == 200 && $info['content_type'] == 'application/x-zip-compressed') {
$zh = zip_open('/path/to/zip/save/folder/' . $targetFile);
}
else {
exit('Download of ZIP file failed.');
}
위의 코드는 고유 한 이름으로 서버의 디렉토리에 파일을 다운로드 할 수 있습니다. 그러나 내용을 추출 할 수 없습니다.
PHP의 zip_open
명령을 사용하여 압축을 풀어 보았지만 항상 핸들 대신 오류 코드 을 반환했습니다. 내가 zip_open 함수에 전달한 경로를 확인한 결과 전체 시스템 경로가 /path/to/zip/save/folder/data-5384e2306718492958f20e68de95c6fa.zip
입니다.
참고 :
CSV 파일 파일 압축 2.5 MB 및 비 압축 30메가바이트입니다.
data-5384e2306718492958f20e68de95c6fa.zip을 컴퓨터에 다운로드하면 WinZip이나 좋아하는 편집기로 열 수 있습니까? – vicatcu
예 할 수 있습니다. 그러나 그것은이 문제에 도움이되지 않을 것입니다. 이 스크립트는 CRON을 통해 하루에 한 번 실행되므로 수동 개입이 필요하지 않습니다. – Camsoft