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 :

Créer un fichier CSV à p


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 56
    Points : 34
    Points
    34
    Par défaut Créer un fichier CSV à p
    Bonjour à tous ! Je suis débutant en php et j'ai besoin de savoir comment créer un fichier csv à partir des valeurs entrées dans un input

    type texte:

    En fait je veux entrer un intervalle comme suit: 0000;0005 dans mon input et avoir le résultat suivant:

    0000
    0001
    0002
    0003
    0004
    0005

    Ceci dans un fichier CSV (ou txt si possible).

    SVP aidez moi (idéalement avec un bout de code, car je n'ai vraiment aucune idée)

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    A partir du moment où ton formulaire a été envoyé :

    Tu explode le contenu de ton input avec le delimiter ";"
    Tu récupères ainsi le nombre de début et de fin correspondant à ton intervalle
    Tu fais une boucle for entre ces deux nombres en incrémentant de +1 à chaque tour, et tu ajoutes ce nombre dans une chaîne de caractères.
    Tu créer (function fopen) et écrit dans ton fichier txt avec la fonction fwrite
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 56
    Points : 34
    Points
    34
    Par défaut Créer un fichier csv ou text à partir de input type texte
    Bonsoir !

    Merci beaucoup pour la procédure que vous m'avez envoyés afin que mon problème soit resolu.

    J'ai suivi ces étapes et voici le code que j'ai obtenu:

    FORMULAIRE
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <html>
    <body>
    <form method="post" action="testinput.php"> 
    Nom : <input type="text" name="nom" size="12"><br> 
    Prénom : <input type="text" name="prenom" size="12"> 
    <input type="submit" value="OK"> 
    </form>
    </body>
    </html>

    CODE PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $chaine= $_POST['nom'];
    $num = explode(";", $chaine);
    for ($data = $num[0] ; $data <= $num[1]; $data++){
       $monfichier = fopen('fichiernum.txt', 'a');
    fputs($monfichier, $data);
    fseek ($monfichier, 0);
    }
    fclose ($monfichier);
    ?>
    PROBLEME


    - Il écrire tout sur la même ligne
    - Il conserve l'ancien contenu
    - Aussi je n'ai pas su comment ajouter ce nombre dans une chaîne de caractères.
    je voudrais que chaque fois qu'il écrit qu'il vide le fichier et y met un nouveau contenu selon la structure suivante:

    0001
    0002
    0003
    0004
    0005

    S'il vous plait aidez moi une fois de plus, je vous en prie. Je ne connais pas.

  4. #4
    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
    Citation Envoyé par nguim Voir le message
    - Il conserve l'ancien contenu
    Normal, tu ouvres le fichier en mode "append" (ajouter à la fin du fichier) : fopen('fichiernum.txt', 'a');.
    Citation Envoyé par nguim Voir le message
    - Il écrire tout sur la même ligne
    Si tu as un tableau et que tu veux écrire dans le fichier une ligne du tableau par ligne du fichier, le plus simple est sans doute d'utiliser file_​put_​contents, qui se charge de l'ouverture du fichier, de l'écriture et de la fermeture du fichier. (bref, ça fait tout tout seul) :

    EDIT : J'avais pas fait attention : tu as uniquement les deux bornes. Donc il faut que tu remplisses le tableau d'abord :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $chaine= $_POST['nom'];
    $num = explode(";", $chaine);
    $data = array();
    for ($i = $num[0]; $i <= $num[1]; $i++) {
      $data[] = sprintf('%04d', $i);
    }
    file_put_contents('fichiernum.txt', $data);
    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]

  5. #5
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Pour ma part ce que je ferais (pour permettre l'écriture de tous les chiffres entre l'intervalle) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $monfichier = fopen('fichiernum.txt', 'a+');
    $string = '';
    for ($data = $num[0]; $data <= $num[1]; $data++) {
            $string .= $data."\n";
    }
    fwrite($monfichier, $string);
    fclose($monfichier);
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 56
    Points : 34
    Points
    34
    Par défaut
    Merci pour votre aide:

    Voici le code que j'ai trouvé quand je me débrouillais:


    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
     
     
    <?php
     
    set_time_limit(0);
    error_reporting(E_ALL ^ E_NOTICE);
     
    $chaine= $_POST['plagemdncr'];
    $num = explode(",", $chaine);
     
    $monfichier = fopen('fichiernum.txt', 'a');
     
    ftruncate($monfichier,0); //Vide avant tout le contenu du fichier
     
    for ($data = $num[0] ; $data <= $num[1]; $data++) 
    {
     
    fputs($monfichier, $data."\r\n");
     
    }
    fclose ($monfichier);
    header('Location: ../Blog Posts/resultatgestnumrec.php');
    ?>
    Et ça fonctionne aussi, seulement qu'il affiche une ligne vide à la fin du fichier

    lorsqu'il a finit d'écrire tous les nombres de mon intervalle. Espace que je n'ai pas souhaité, mais le problème est résolu.

    Merci pour toutes vos aides.

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

Discussions similaires

  1. créer un fichier csv dans un répertoire
    Par vodasan dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 10/03/2008, 08h58
  2. [CSV] Créer un fichier CSV sur le serveur
    Par sam01 dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2007, 15h10
  3. Créer un fichier CSV à partir d'un recordset
    Par mouaa dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/07/2007, 14h40
  4. [CSV] Créer un fichier csv depuis php
    Par jbidou88 dans le forum Langage
    Réponses: 5
    Dernier message: 07/05/2007, 17h41
  5. [CSV] Comment créer un fichier CSV
    Par yannbf dans le forum Langage
    Réponses: 2
    Dernier message: 27/02/2007, 20h14

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