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 télécharger via le Navigateur les données de mon script PHP dans un fichier .csv à chaque exécution ?


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 télécharger via le Navigateur les données de mon script PHP dans un fichier .csv à chaque exécution ?
    Bonjour.


    Je voulais qu'au lieu d'afficher le résultat une Page Web, mon code PHP ci-dessous passe directement un Ficher .csv dans le Header du Navigateur qui sera automatiquement télécharger à chaque fois que j'exécute mon script. Je sais que je pouvais le fais en faisant simplement un fputcsv comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	header('Content-Type: text/txt; charset=utf-8'); 
    	header('Content-Disposition: attachment; filename=text.csv'); 
     
            $text = array();
     
    	$output = fopen('php://output', 'w'); 
     
    	fputcsv($output, $text); 
     
    }
    Mais je ne veux pas l'afficher comme ceci donnee1,donnee2,donnee3. Mon souhait est d'afficher mes résultats "Ligne par ligne" téléchargeable automatiquement dans un Fichier .csv.

    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
    <?php
    // ini_set('max_execution_time', 120); // 120 (seconds) = 2 Minutes
    ini_set('max_execution_time', 0); // 0 = Unlimited
    set_time_limit(0);
     
    // 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
    	echo $resultat . '<br>';
    }
     
    ?>
    Comment donc s'il vous plaît télécharger automatiquement dans un fichier .csv directement via le navigateur web les résultats de mon script à chaque fois que j'exécute celui-ci ???

    NB: Pour faire simple, je souhaiterais afficher ligne par ligne les résultats de mon Script dans un fichier .csv téléchargeable automatiquement via le Navigateur Web à chaque exécution du script.

    Merci d'avance pour votre aide.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Ceci fais ce que vous voulez, à vous d’adapter :

    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
     
    <?php
    $file = 'text.csv';
    header('Content-Type: text/txt; charset=utf-8'); 
    header('Content-Disposition: attachment; filename='.$file); 
     
    $list = array (
       array('aaa', 'bbb', 'ccc', 'dddd'),
       array('123', '456', '789'),
       array('"aaa"', '"bbb"')
    );
     
    $fp = fopen($file, 'w');
     
    foreach ($list as $fields) {
        fputcsv($fp, $fields);
    }
     
    fclose($fp);
     
    readfile($file);
    ?>

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/08/2013, 17h53
  2. Réponses: 4
    Dernier message: 24/05/2013, 18h59
  3. Réponses: 1
    Dernier message: 10/08/2009, 10h21
  4. Réponses: 5
    Dernier message: 17/06/2008, 16h38

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