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 :

Comment générer plusieurs fichiers .csv à la fois avec mon Code PHP ?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut Comment générer plusieurs fichiers .csv à la fois avec mon Code PHP ?
    Bonjour.

    Mon code ci-dessous me permet de générer une liste de numéro (de 0 à 9999) dans un Fichier .csv téléchargé via le HEADER du Navigateur Web à partir d'un Préfixe renseigné au niveau du formulaire HTML et récupéré par la variable $numero.

    Alors, mon but actuel est comment modifier mon Code pour réussir à générer et télécharger deux (02) fichiers .csv téléchargés via le HEADER du Navigateur Web à partir de deux (02) Préfixe renseignés au niveau du formulaire HTML ???

    Pour être explicite, je veux ajouter un autre champs input type=number name="numero2" à mon formulaire HTML qui sera défini lui-aussi comme Préfixe et qui permettra de générer lui aussi un 2ème Fichier .csv à partir du préfixe (numéro 2) renseigné via le Formulaire HTML.

    Le but final étant de permettre à mon code de traiter deux (2) champs de Préfixe (numéros) à renseigner depuis le formulaire HTML et de pouvoir enfin générer autant (2 dans mon cas actuel vu que c'est deux champs de numéros préfixé renseigné depuis les formulaire HTML) de fichier .csv que de Préfixe (numéros) renseignés.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    $now = gmdate("D, d M Y H:i:s");
    header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
    header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
    header("Last-Modified: {$now} GMT");
     
    // force download  
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");
     
    $filename = "numero.csv";
     
    // disposition / encoding on response body
    header("Content-Disposition: attachment;filename={$filename}");
    header("Content-Transfer-Encoding: binary");
     
    ob_start();
    $df = fopen("php://output", 'w');
     
    // pour mettre un entête sur le CSV
    $entetes = ['Numero'];
    fputcsv($df, $entetes);
     
    // numéro de base
    $numero         = (isset($_POST['numField'])) ? $_POST['numField'] : 0;
    // longueur souhaité (doit être plus grande que longueur de $numéro)
    $longueur_total = (isset($_POST['numLength'])) ? $_POST['numLength'] : 0;
    // longueur utilisé en retirant la longueur de base
    $longueur       = $longueur_total - strlen($numero);
    // calcule de la puissance de 10 en fonction de la longueur souhaité
    $max            = pow(10, $longueur);
    // affichage du maximun de tour de la boucle
    // echo "<h1>$max</h1>";
    for ($i = 0; $i < $max; $i++) {
        // différence de longueur
        $diff = $longueur - strlen($i);
        $zero = "";
        for ($a = 0; $a < $diff; $a++) {
            // ajout des zéro devant
            $zero .= "0";
        }
        // concaténation du résultat
        $resultat = $numero . $zero . $i;
        // effacement des zéro
        $zero     = "";
        // affichage du résultat
        $row = [$resultat];
        fputcsv($df, $row);
    }
    fclose($df);
    echo ob_get_clean();
    exit(0);
    Comment donc générer plusieurs (2 dans mon cas actuel) fichiers .csv à la fois avec mon Code PHP ci-dessus ???

    Merci de m'aider s'il vous plaît.

  2. #2
    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
    Tu ne peux pas demander au navigateur de télécharger 2 fichiers en même temps, parce le fichier correspond à la réponse à la requête HTTP, et qu'il n'y a qu'une seule réponse à la fois.
    Ce que tu peux faire, c'est soit 2 liens différents, un par fichier, soit une archive ZIP qui contiendra tes deux fichiers.
    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]

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut
    Merci Celira pour la réponse. Mais comment pourrais-je le faire via une archive .Zip ????

    Un exemple se basant sur mon code ci-dessus me serait d'une grande aide.

    Merci d'avance.

Discussions similaires

  1. VBA consolider plusieurs fichiers .csv vers .xlsm avec conditions
    Par ProjetRH dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/04/2017, 10h40
  2. [MySQL] Problème avec mon code PHP
    Par af.zakaria dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/04/2012, 17h51
  3. [MySQL] Mise en bdd d'un fichier csv en passant par un code php
    Par Cereales dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 01/03/2008, 15h45
  4. [EasyPHP] Problème d'affichage avec mon code PHP
    Par LegioKilt dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 24/11/2007, 04h13
  5. Réponses: 13
    Dernier message: 21/12/2005, 12h04

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