IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[CSV] Modifier un champ d'un fichier CSV


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Points : 113
    Points
    113
    Par défaut [CSV] Modifier un champ d'un fichier CSV
    bonjour a tous,

    je cherche a modifier un champ d'un fichier csv dont le separateur est une virgule.

    ex :
    "nom","prenom","adresse"
    "tronaze","bernard","france"

    J aimerais par exemple pouvoir changer "france" en "belgique"...

    merci de votre aide.






    je viens de faire ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?
    $fichier = "./monfic.csv";
    $fic = fopen($fichier, 'rb');
    $tab = array('didier','pierre','julien');
     
    //Je lis le fichier csv et je met tout dans mon tableau (mon fichier csv est de meme modele que tab)
    for ($ligne = fgetcsv($fic, 1024); !feof($fic); $ligne = fgetcsv($fic, 1024)) {
      $j = sizeof($ligne);
      for ($i = 0; $i < $j; $i++) {
        $tab[$i]=$ligne[$i];
    	echo $tab[$i]; // test qui affiche bien le contenu de monfic.csv
        }
    }
     
    //J utilise le fameux fputcsv
     if ($fp = @fopen('./a.csv', 'w')) {
       foreach ($tab as $lign) {
         fputcsv($fp, $lign);
         }
       fclose($fp);
       }
     else {
       echo "Impossible d'acc&eacute;der au fichier.";
       }
    Resultat des courses:
    le fichier a.csv est bien cree mais avec rien a l interieur... j accepte toutes vos suggestions !!!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Points : 113
    Points
    113
    Par défaut
    Bon je me repond a tout seul... enfin c est deja pas mal.
    Mon fichier n'a ps de droit en ecriture... j ai fait le test suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    $list = array('Bob','John','Oslo','Norway');
    $fic = "./contacts.csv";
    if (is_writable($fic)) 
    	{
    	$file = fopen($fic,"w");
            foreach ($list as $line)
      	{
      		fputcsv($file,split(',',$line));
      	}
    	fclose($file);
    }
    else
    {
    echo "Le fichier $fic n'est pas accessible en écriture.";
    }
    la reponse retournee est $fic n est pas Writable..

    heuu.. question peut etre simple.. comment on fait pour rendre un fichier writable sachant que celui ci n existe pas encore? En effet, contacts.csv est cree par ce programme..

    merci pour vos non reponses pour les miennes et pour celles que vous posterez aussi.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 51
    Points
    51
    Par défaut
    Pour rendre le fichier accessible en écriture, il faut que tu le précises en paramètre de la fonction fopen.
    Pour plus de précisions, va voir la doc PHP : http://fr.php.net/fopen
    C'est très bien expliqué

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 266
    Points : 113
    Points
    113
    Par défaut
    merci mais ca n a rien a voir.

    sinon, j ai fait un chmod($file, 0777) ca cree tjr un fichier csv vide...
    Quand j utilise la methode fputs normale par contre maintenant ca ecrit mais c est pas la fonction magique fputcsv..

    Y a personne qu a jamais utilise cette fonction ici ??
    ouinnnn

Discussions similaires

  1. Modifier plusieurs champs dans un fichier Csv
    Par francois_a dans le forum Shell et commandes GNU
    Réponses: 36
    Dernier message: 02/09/2009, 17h31
  2. [CSV] Insérer des champs dans un fichier CSV
    Par floctc dans le forum Langage
    Réponses: 1
    Dernier message: 20/07/2009, 11h26
  3. Ne pas charger le premier champ d'un fichier csv
    Par pmoury06 dans le forum SQL*Loader
    Réponses: 1
    Dernier message: 28/10/2008, 17h07
  4. Fichier csv modifier après importation
    Par Mymi dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/12/2007, 13h54
  5. Réponses: 3
    Dernier message: 26/04/2006, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo