>  기사  >  백엔드 개발  >  PHP에서 대용량 CSV 파일을 읽고 데이터베이스 예제로 가져오는 방법

PHP에서 대용량 CSV 파일을 읽고 데이터베이스 예제로 가져오는 방법

黄舟
黄舟원래의
2017-07-24 14:43:131406검색

아래 편집기는 PHP로 대용량 CSV 파일을 읽고 이를 데이터베이스로 가져오는 예를 제공합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 편집기를 따라가서 어떻게

PHP가 대용량 CSV 파일을 읽고 데이터베이스로 가져오는지 살펴보겠습니다.

수백만 개의 데이터 항목이 포함된 CSV 파일의 경우 파일 크기가 수백 MB에 달할 수 있습니다. 단순히 읽는 경우 시간이 초과되거나 정지될 수 있습니다.

CSV 파일의 데이터를 데이터베이스로 성공적으로 가져오기 위해서는 일괄 처리가 매우 필요합니다.

다음 함수는 CSV 파일에 지정된 특정 데이터 행을 읽습니다.


/**
 * csv_get_lines 读取CSV文件中的某几行数据
 * @param $csvfile csv文件路径
 * @param $lines 读取行数
 * @param $offset 起始行数
 * @return array
 * */
function csv_get_lines($csvfile, $lines, $offset = 0) {
 if(!$fp = fopen($csvfile, 'r')) {
 	return false;
 }
 $i = $j = 0;
	while (false !== ($line = fgets($fp))) {
		if($i++ < $offset) {
			continue; 
		}
		break;
	}
	$data = array();
	while(($j++ < $lines) && !feof($fp)) {
		$data[] = fgetcsv($fp);
	}
	fclose($fp);
 return $data;
}

호출 방법:


$data = csv_get_lines(&#39;path/bigfile.csv&#39;, 10, 2000000);
print_r($data);

이 함수는 주로 Skip을 통해 행 위치 지정 아이디어를 사용합니다. 파일 포인터 위치 지정을 위한 시작 줄 번호입니다.

데이터가 데이터베이스에 저장되는 방법에 대해서는 이 문서에서 자세히 다루지 않습니다.

위 기능은 500M 이내의 파일에서 테스트되었으며 더 큰 파일에서는 테스트되지 않았습니다.

위 내용은 PHP에서 대용량 CSV 파일을 읽고 데이터베이스 예제로 가져오는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.