Editer fichier csv avec php: recherche/remplacer

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

arnoweb
WRInaute discret
WRInaute discret
 
Messages: 87
Inscription: 24 Juil 2004

Editer fichier csv avec php: recherche/remplacer

Message le Ven Avr 08, 2011 21:57

Bonjour à tous,

J'ai un petit soucis pour traiter un fichier csv avec php

J'aimerais que php fasse un rechercher/remplacer. (recherche dans colonne A et écrit dans colonne B)

Lorsque la colonne nom contient le mot-clé "chemise", php doit modifier la colonne rubrique et écrire 1.
Lorsque la colonne nom contient le mot-clé "costume", php doit modifier la colonne rubrique et écrire 2.
Lorsque la colonne nom contient le mot-clé "cravate", php doit modifier la colonne rubrique et écrire 3.

etc .........

Avez-vous une idée ?

Merci pour votre aide.


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Re: Editer fichier csv avec php: recherche/remplacer

Message le Ven Avr 08, 2011 22:07

Tu vas devoir traiter ton fichier ligne par ligne pour ça, en passant notamment par la fonction fgetcsv : http://php.net/manual/fr/function.fgetcsv.php, et en faisant des tests sur les colonnes qui déterminent si tu dois modifier ou non la ligne en cours.

Au fur et à mesure de tes remplacements, tu concatènes la ligne mise à jour (ou non) dans une variable intermédiaire que tu sauvegarde en fin de parcours.

arnoweb
WRInaute discret
WRInaute discret
 
Messages: 87
Inscription: 24 Juil 2004

Re: Editer fichier csv avec php: recherche/remplacer

Message le Ven Avr 08, 2011 23:34

merci pour ta réponse.

Quand tu dis "ligne par ligne" tu veux dire que je dois utiliser la fonction while ?

Tu pourrais me donner un exemple de code ?

Je ne vois pas comment parcourir mon tableau pour atteindre la colonne à rechercher.
Et je ne vois pas comment écrire dans la colonne qui doit être éditée.

Merci.


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Re: Editer fichier csv avec php: recherche/remplacer

Message le Sam Avr 09, 2011 9:07

Il y a sans doute moyen d'optimiser ça, vu que j'ai pondu ça au saut du lit, mais ça semble faire ce que tu attends :

Code: Tout sélectionner
<?php
$row = 0;
$update = "";
//on stocke en variable le séparateur de csv utilisé
$separator = ";";

//on crée deux variables contenant les index des colonnes à lire / modifier
$idx_nom = 0;
$idx_rubrique = 1;

//on ouvre le fichier en écriture
if (($handle = fopen("test.csv", "r")) !== FALSE)
{
   
   //on parcours le fichier ligne à ligne, en stockant dans un tableau les donnée
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE)
    {
       //on ne commande qu'à la deuxième ligne, su la première contient les entêtes de colonnes
       if ($row != 0)
       {
          //on fait les tests sur le nom
          if (stristr($data[$idx_nom], 'chemise'))
          {
             $data[$idx_rubrique] = 1;
          }
           else if (stristr($data[$idx_nom], 'costume'))
          {
             $data[$idx_rubrique] = 2;
          }
           else if (stristr($data[$idx_nom], 'cravate'))
          {
             $data[$idx_rubrique] = 3;
          }
      }
      
      $update   .= implode($separator,$data)."\r\n";
      $row++;
   }
   
    fclose($handle);
}

//on ouvre le fichier en ecriture et on le met à jour
$ouvre=fopen("test.csv","w+");
fwrite($ouvre,$update);
fclose($ouvre);
?>

arnoweb
WRInaute discret
WRInaute discret
 
Messages: 87
Inscription: 24 Juil 2004

Re: Editer fichier csv avec php: recherche/remplacer

Message le Sam Avr 09, 2011 12:04

Merci beaucoup pour ta réponse !

Je vais essayer ton code.


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Re: Editer fichier csv avec php: recherche/remplacer

Message le Sam Avr 09, 2011 16:15

Je te dirais bien de tout mettre dans MySQL, après tu aurais accès aux commandes REPLACE par exemple.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité