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 :

Reutiliser variables issues d'un fgetcsv


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Mai 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Mai 2015
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Reutiliser variables issues d'un fgetcsv
    Bonjour à tous,

    Je vous expose mon problème. J'aurai besoin d'utiliser les variables issues d'un fichier CSV, par exemple le fichier toast.csv :

    Nom;Prenom;Age
    Truc;Simone;19
    Machin;Anthony;19
    Bidule;Antoine;21
    afin de pouvoir les dupliquer et les modifier dans un autre fichier, que nous pouvons appeler "copie.csv"

    J'ai utilisé la fonction "fgetcsv" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $filename = "toast.csv";
    $ligne = file($filename); 
    $nbTotalLignes = count($ligne);
    for ($i=0; $i < $nbTotalLignes; $i++) { 
    	$ligneTab = explode(";", $ligne[$i]); 
    echo $ligne[$i];
    }
    ?>

    Mais la fonction me permet seulement d'AFFICHER mes valeurs sur une page Internet, je souhaiterai pouvoir les réutiliser dans une autre fichier.

    J'espère avoir été suffisamment explicite et je vous remercie par avance

  2. #2
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je ne comprends pas trop ton problème, si tu arrives à les récupérer tu peux créer un nouveau fichier pour les utiliser?

    Où bloque tu?
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  3. #3
    Futur Membre du Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Mai 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Mai 2015
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Eh bien je ne sais pas comment exploiter ces variables afin de les copier dans un autre fichier CSV.

    Mon manque de logique/connaissance informatique sait seulement les afficher sur une page web

  4. #4
    Modérateur
    Avatar de Kreepz
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2011
    Messages : 681
    Points : 1 458
    Points
    1 458
    Billets dans le blog
    1
    Par défaut
    Où fais tu appel à la fonction "fgetcsv" dans ton code?
    Pensez à regarder nos cours et tutoriels PHP ainsi que notre FAQ PHP avant de poser votre question!
    Un message vous a aidé, n'oubliez pas le

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Et sinon, la fonction pour écrire du CSV est fputcsv. Attention à bien utiliser deux ressources de fichier : une pour le fichier que tu lis et une pour le fichier que tu écris.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Futur Membre du Club
    Homme Profil pro
    BTS SIO SLAM
    Inscrit en
    Mai 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : BTS SIO SLAM

    Informations forums :
    Inscription : Mai 2015
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Oui c'était le mauvais code.

    J'ai donc ma fonction fgetcsv :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $handle = fopen("toast.csv", "r");
    	while (($data = fgetcsv($handle, 1000, ",")) !== FALSE){
    		$num = count($data);
    		for ($i=0; $i < $num; $i++){
    			echo $data[$i] . "<br />\n";
    		}
    	}
    	fclose($handle);
    ?>
    qui va m'afficher sur une page web mes données issues du fichier "toast.csv". Très bien.



    A l'inverse j'ai bien utilisé la fonction fputcsv :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    // Cree fichier CSV avec les valeurs du tableau
    $ligne[]=array('Simone','Truc');
    $ligne[]=array('Antoine','Bidule');
    // Ecriture du futur fichier CSV vide. W+ correspond à une ouverture en lecture et ecriture
    $fp = fopen("fichier.csv", 'w+'); 
    // Resout les problemes d'affichage des caracteres spéciaux
    fprintf($fichier_csv, chr(0xEF).chr(0xBB).chr(0xBF));
    foreach ($ligne as $key) {
    	fputcsv($fp, $key);
    }
    fclose($fp);
    ?>
    Mais le "fichier.csv" aura pour élements les deux arrays que je viens de créer.



    Je souhaiterai donc pouvoir TRANSFERER directement les valeurs issus d'un fichier A.csv dans un fichier B.csv
    Sans les afficher sur une page web.
    Et sans devoir créer moi même des arrays.

    J'espère être clair ._________.

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Il suffit d'écrire les données que tu viens de lire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    // ouverture du fichier à lire
    $handle = fopen("toast.csv", "r");
    // Ecriture du futur fichier CSV vide. W+ correspond à une ouverture en lecture et ecriture
    $fp = fopen("fichier.csv", 'w+'); 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE){
    	// $data est la ligne à écrire
    	$ligne = $data;
    	fputcsv($fp, $ligne);
    }
    // fermeture du fichier en lecture
    fclose($handle);
    // fermeture du fichier en écriture
    fclose($fp);
    Bon là, ça fait une copie pure et simple, donc pour ça autant utiliser copy.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/03/2008, 03h58
  2. [MySQL] probleme sur 2 variables issues d'une table $_POST
    Par gilal dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/03/2008, 17h02
  3. [Mail] Exploser les données d'une variable issu de Flash
    Par anti-conformiste dans le forum Langage
    Réponses: 1
    Dernier message: 02/11/2006, 16h23
  4. [Tableaux] Variable issues d'un formulaire
    Par Agrumes dans le forum Langage
    Réponses: 6
    Dernier message: 06/07/2006, 16h46
  5. [MySQL] Récupérer 2 variables issues d'une boite liste
    Par alain31tl dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 26/03/2006, 04h17

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