Editer fichier csv avec php: recherche/remplacer

Discussion dans 'Administration d'un site Web' créé par arnoweb, 8 Avril 2011.

  1. arnoweb
    arnoweb WRInaute discret
    Inscrit:
    24 Juillet 2004
    Messages:
    82
    J'aime reçus:
    0
    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.
     
  2. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 898
    J'aime reçus:
    74
    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.
     
  3. arnoweb
    arnoweb WRInaute discret
    Inscrit:
    24 Juillet 2004
    Messages:
    82
    J'aime reçus:
    0
    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.
     
  4. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 898
    J'aime reçus:
    74
    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:
    <?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);
    ?>
    
     
  5. arnoweb
    arnoweb WRInaute discret
    Inscrit:
    24 Juillet 2004
    Messages:
    82
    J'aime reçus:
    0
    Merci beaucoup pour ta réponse !

    Je vais essayer ton code.
     
  6. Julia41
    Julia41 WRInaute passionné
    Inscrit:
    31 Août 2007
    Messages:
    1 779
    J'aime reçus:
    0
    Je te dirais bien de tout mettre dans MySQL, après tu aurais accès aux commandes REPLACE par exemple.
     
Chargement...
Similar Threads - Editer fichier csv Forum Date
Impossible d'éditer fichiers FTP - Cloudflare Développement d'un site Web ou d'une appli mobile 15 Août 2014
Editer document Word avec Javascript Développement d'un site Web ou d'une appli mobile 10 Septembre 2020
301, faut-il éditer la BDD en masse? Netlinking, backlinks, liens et redirections 27 Octobre 2011
Quelle langue pour le nom du fichier image? YouTube, Google Images et Google Maps 1 Février 2021
Blocage d'un visiteur via le fichier .htaccess URL Rewriting et .htaccess 5 Janvier 2021
Meilleure solution pour les noms de fichiers HTML Débuter en référencement 6 Novembre 2020
Fractionner un fichier uploadé (slice/chrunk) Développement d'un site Web ou d'une appli mobile 2 Octobre 2020
Erreur d'indexation Google pour mes fichiers PDF Crawl et indexation Google, sitemaps 17 Septembre 2020
Configuration Quantcast Choice avec fichier json. Google Analytics 15 Septembre 2020
Informations sur fichier sellers.json pour gagner plus AdSense 9 Septembre 2020