Maison > développement back-end > tutoriel php > Comment lire un gros fichier CSV en php et l'importer dans l'exemple de base de données

Comment lire un gros fichier CSV en php et l'importer dans l'exemple de base de données

黄舟
Libérer: 2023-03-14 12:30:02
original
1428 Les gens l'ont consulté

L'éditeur suivant vous apportera un exemple de lecture d'un gros fichier CSV dans la base de données avec PHP. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un coup d'œil

Comment PHP lit-il les gros fichiers CSV et les importe-t-il dans la base de données ?

Pour les fichiers CSV contenant des millions d'éléments de données, la taille du fichier peut atteindre des centaines de Mo. S'il est simplement lu, il est susceptible d'expirer ou de se bloquer.

Afin de réussir à importer les données du fichier CSV dans la base de données, le traitement par lots est très nécessaire.

La fonction suivante lit certaines lignes de données spécifiées dans le fichier 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;
}
Copier après la connexion

Méthode d'appel :


$data = csv_get_lines(&#39;path/bigfile.csv&#39;, 10, 2000000);
print_r($data);
Copier après la connexion

La fonction utilise principalement l'idée de positionnement des lignes, en sautant le numéro de ligne de départ Pour réaliser positionnement du pointeur de fichier.

Quant à la manière dont les données sont stockées dans la base de données, cet article n'entrera pas dans les détails.

La fonction ci-dessus a été testée sur des fichiers de moins de 500 Mo et fonctionne correctement. Elle n'a pas été testée sur des fichiers plus volumineux. Veuillez envisager de l'utiliser ou de l'améliorer.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal