Aidez-moi SVP à récupérer seulement le Nom et l'email dans un fichier CSV et surtout modifier le nom des colonnes ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Aidez-moi SVP à récupérer seulement le Nom et l'email dans un fichier CSV et surtout modifier le nom des colonnes ?

Re: Aidez-moi SVP à récupérer seulement le Nom et l'email dans un fichier CSV et surtout modifier le nom des colonnes ?

par @rthur » 02 juin 2021, 16:56

Bah tu te bases sur l'entête pour savoir où est l'email et où est le nom.
Si tu connais toutes les possibilités pour l'appellation du champ email, et toutes les possibilités pour le champ nom, il te suffit de faire un str_replace() sur la première ligne pour chacune des possibilités.

Re: Aidez-moi SVP à récupérer seulement le Nom et l'email dans un fichier CSV et surtout modifier le nom des colonnes ?

par chegmarco » 01 juin 2021, 23:30

la structure des fichiers csv est vraiment aléatoire ? ou il y en a plusieurs sortes mais c'est prévisible ?
Oui la structure des fichiers CSV à traiter et dont je cherche à extraire est bien sûr ALEATOIRE c'est-dire-dire que chaque fichier CSV est disposé différemment mais moi je cherche à en extraire seulement deux colonnes à savoir Name et Email de sorte à modifier les entêtes qui pourrait au départ être Email Adresse en Email tout court ou Last Name en Name ou encore First Name en Name.

Aidez-moi s'il vous plaît.

Re: Aidez-moi SVP à récupérer seulement le Nom et l'email dans un fichier CSV et surtout modifier le nom des colonnes ?

par or 1 » 01 juin 2021, 22:59

la structure des fichiers csv est vraiment aléatoire ? ou il y en a plusieurs sortes mais c'est prévisible ?

Re: Aidez-moi SVP à récupérer seulement le Nom et l'email dans un fichier CSV et surtout modifier le nom des colonnes ?

par chegmarco » 01 juin 2021, 22:47

Merci pour votre réponse.

Voici ce que j'ai fais:

Code : Tout sélectionner

//Ouverture et lecture du fichier CSV: $file = fopen("Fichier1.csv", "r"); //Boucle à travers les colonnes: while (($row = fgetcsv($file, 0, ",")) !== FALSE) { //Vérifier si le Titre de la colonne qui peut-être "Email Address", ou Address-Email contient le mot "Email" // Puis remplacer le Titre de cette colonne par "Email" tout court. // Faire pareil avec la colonne des "Last Name" et "First Name" qu'on devrait remplacer par "Name" tout court: if(stripos($row, email) !== false) { $emailRow = str_replace($row, "Email", $row); } else if(stripos($row, name) !== false) { $nameRow = str_replace($row, "Name", $row); } } // Ici, je cherche à enregistrer toute les deux colonnes et leurs valeurs avec comme titre "Name" dans la première colonne et "Email" dans la deuxième colonne. fputcsv($nameRow, $emailRow); fclose($file);
Je sais que j'ai fais du n'importe quoi, donc je sollicite votre aide.
Aidez-moi s'il vous plaît.

Re: Aidez-moi SVP à récupérer seulement le Nom et l'email dans un fichier CSV et surtout modifier le nom des colonnes ?

par @rthur » 01 juin 2021, 17:00

On ne va pas le faire à ta place donc donne nous le code que tu as essayé pour résoudre ton problème et les messages d'erreurs qui te bloques.

Si tu bloques sur la façon de faire, alors voici les grandes lignes :
- fopen() pour ouvrir un fichier en lecture
- Puis tu fais une boucle dans laquelle tu utilises fgetcsv() (cf l'exemple de la doc) pour traiter chaque ligne l'une après l'autre
- Dans cette boucle, tu reconstruis un tableau propre avec les champs que tu veux dans l'ordre que tu veux
- Après avoir traité chaque ligne (et donc après la fin de ta boucle) fputcsv() pour réécrire un CSV dans le format que tu veux

Aidez-moi SVP à récupérer seulement le Nom et l'email dans un fichier CSV et surtout modifier le nom des colonnes ?

par chegmarco » 01 juin 2021, 15:25

Bonjour.

J'ai plusieurs fichiers .csv qui ne sont pas disposés de la même façon Mais que je souhaiterais les disposer de façon unique en affichant seulement les Noms et les Emails.

Exemple:

Fichier1.csv:

Code : Tout sélectionner

Name, Country, Age, Email-Address Alex, France, 22 ans, [email protected] Emily, États-Unis, 18 ans, [email protected] Jean, Royaume-Uni, 25 ans, [email protected] Yohan, États-Unis, 32 ans, [email protected]
Fichier2.csv:

Code : Tout sélectionner

Address Email, Last Name, First Name, Phone [email protected], Chkk, Willias, 6565898999 [email protected], Fred, Madson, 5546347656 [email protected], Charly, Mark, 9865252222 [email protected], Trsy, Bonifas, 3255666897
Mais je souhaiterais les convertir de façon à récupérer seulement l'adresse Name dans la première colonne et le Email dans la deuxième colonne exactement comme ceci:

Résultat (disposition) expéré:

Code : Tout sélectionner

Name, Email Bill Daruis, [email protected] Tresor Fiacre, [email protected] Richardson, [email protected]
1 - Comment donc réussir à convertir n'importe quelle disposition du fichier .csv de façon à présenter dans la 1ère colonne le Name et dans la seconde l'Email ???

2 - Comment surtout modifier le nom des colonnes d'origine (Exemple: Last Name en Name ou First Name en Name et Adresse Email en Email ou encore Email-Address en Email) ???

3 - Comment enregistrer ces modifications effectuées toujours en CSV???


Aidez-moi s'il vous plaît à travers un exemple de code.
Merci d'avance.