Tratiement CSV en PHP
Fermé
titus93
Messages postés
2
Date d'inscription
mardi 2 octobre 2007
Statut
Membre
Dernière intervention
19 janvier 2012
-
19 janv. 2012 à 09:07
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 19 janv. 2012 à 21:40
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 19 janv. 2012 à 21:40
Bonjour,
J'ai besoin de traiter un fichier CSV qui contient plusieurs tableaux, ceux-ci sont séparer par le mot ****_start et ****_end.
Je voudrais pouvoir créer plusieurs fichiers qui contiennent chacun un tableaux appartenant au fichier CSV.
Je voudrais utilisé du PHP pour le faire.
Quelqu'un peut-il m'aider.
J'ai besoin de traiter un fichier CSV qui contient plusieurs tableaux, ceux-ci sont séparer par le mot ****_start et ****_end.
Je voudrais pouvoir créer plusieurs fichiers qui contiennent chacun un tableaux appartenant au fichier CSV.
Je voudrais utilisé du PHP pour le faire.
Quelqu'un peut-il m'aider.
A voir également:
- Tratiement CSV en PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Telecharger en csv - Télécharger - Bases de données
- Nombre de colonnes invalides dans les données csv à la ligne 1 ✓ - Forum Webmastering
- Retour à la ligne php ✓ - Forum PHP
1 réponse
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
19 janv. 2012 à 21:40
19 janv. 2012 à 21:40
voilà une solution:
<?php //si ton fichier est de la forme /* xxxx_start blabla .... .... yyyy_fin zzzzz_start bolobolo ..... ... .... wwww_fin */ //attention il faut mettre ici le chemin relatif par rapport à ce script $nom_fichier='./tonfichier.csv'; //on lit tout le fichier par file qui met dans un array ligne par ligne if(is_file($nom_fichier)){ $array_fichier = file($nom_fichier); //parcours de l'array pour detecter les tags de debut et fin $num_fich=0; $num_ligne_start=0; $num_ligne_end=-1; $array_resultat=array(); foreach($array_fichier as $num_ligne=>$contenu_ligne){ //detection tag debut if(preg_match("#[A-Za-z0-9]_start#",$contenu_ligne)){ $num_ligne_start=$num_ligne; //changement numéro de fichier if($num_ligne_start > $num_ligne_end){ $num_fich ++; } } //detection tag fin if(preg_match("#[A-Za-z0-9]_end#",$contenu_ligne)){ $num_ligne_end=$num_ligne; } //empilage dans l'array a deux dimensions sauf les lignes contenant les tags debut et fin if($num_ligne != $num_ligne_start && $num_ligne != $num_ligne_end){ $array_resultat[$num_fich][]= $contenu_ligne; } } //on se retrouve avec un array a 2 dimensions dont la premiere est le numéro de fichiers et la deuxième leur contenu //parcours premiere dimension $cpt_fich=0; foreach($array_resultat as $num_fichier=>$array_contenu_fichier){ //on ouvre le fichier, si n'existe( c'est notre cas) pas on le crée //tu peux mettre le nom que tu veux //attention il faut mettre ici aussi le chemin relatif par rapport à ce script et que le répertoire qui le contiendra soit en chmod 777 $cpt_fich ++; $f=fopen("./fichier_result_".$num_fichier,"w+"); //parcours deuxieme dimension foreach($array_contenu_fichier as $key=>$ligne){ //ecriture contenu ligne fputs($f,$ligne); } fclose($f); //fermeture fichier } echo "<br />".$cpt_fich." fichiers ont été crées"; }else{ echo 'Fichier '.$nom_fichier.' non trouvé, revoir le nom ou le chemin relatif de ce fichier par rapport a ce script php '; } ?>