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 925
    J'aime reçus:
    77
    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 925
    J'aime reçus:
    77
    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
Référencement - nom des fichiers images Débuter en référencement Mercredi à 14:24
problème lors de l indexation de mes fichiers Crawl et indexation Google, sitemaps 15 Août 2021
problème avec l indexation de mes fichiers Problèmes de référencement spécifiques à vos sites 8 Août 2021
Fichier avec ou sans extension php pour le référencement Crawl et indexation Google, sitemaps 3 Août 2021
Que veut dire ce fichier reçu de Google ? Administration d'un site Web 2 Août 2021
modification fichier htaccess URL Rewriting et .htaccess 25 Juillet 2021
Lien obfusqué avec le fichier JS en Disallow Débuter en référencement 29 Mai 2021