Heim  >  Artikel  >  Backend-Entwicklung  >  So lesen Sie große CSV-Dateien und importieren sie mit PHP in die Datenbank

So lesen Sie große CSV-Dateien und importieren sie mit PHP in die Datenbank

墨辰丷
墨辰丷Original
2018-05-19 09:43:502061Durchsuche

Dieser Artikel stellt hauptsächlich die Methode zum Einlesen großer CSV-Dateien in die Datenbank mit PHP vor. Ich hoffe, dass er für alle hilfreich ist.

Wie liest PHP große CSV-Dateien und importiert sie in die Datenbank?

Bei CSV-Dateien mit Millionen von Datenelementen kann die Dateigröße Hunderte von MB erreichen. Wenn sie einfach gelesen wird, kommt es wahrscheinlich zu einer Zeitüberschreitung oder einem Einfrieren.

Um die Daten in der CSV-Datei erfolgreich in die Datenbank zu importieren, ist eine Stapelverarbeitung unbedingt erforderlich.

Die folgende Funktion liest bestimmte in der CSV-Datei angegebene Datenzeilen:

/**
 * 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;
}

Aufrufmethode:

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

print_r($data);

Die Funktion verwendet hauptsächlich die Idee der Zeilenpositionierung, indem sie den Anfang überspringt Zeilen, um die Positionierung des Dateizeigers zu implementieren.

Auf die Art und Weise, wie die Daten in der Datenbank gespeichert werden, wird in diesem Artikel nicht näher eingegangen.

Die obige Funktion wurde an Dateien innerhalb von 500 MB getestet und läuft reibungslos. Sie wurde nicht an größeren Dateien getestet. Bitte erwägen Sie die Verwendung oder Verbesserung.

Dieses Beispiel, in dem PHP eine große CSV-Datei liest und in die Datenbank importiert, ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, es kann Ihnen eine Referenz geben.

Verwandte Empfehlungen:

Automatische PHP-Sicherung Datenbank Tabellenmethode

php mysqlDatenbankSo kapseln Sie Klassen

php wie kapseln Sie MongodbDatenbank

Das obige ist der detaillierte Inhalt vonSo lesen Sie große CSV-Dateien und importieren sie mit PHP in die Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn