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] Créer un fichier CSV sur le serveur


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut [CSV] Créer un fichier CSV sur le serveur
    Bonjour à tous,

    j'essai d'expoter des données mysql vers un fichier csv et mettre ce fichier csv sur le serveur. voici le code :

    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
     
    	   // on se connecte à MySQL 
     
    	   include ('connect.php');
     
      	  $resQuery = mysql_query("SELECT * FROM lldiffusion_produit");   
     
      	  header("Content-Type: application/csv-tab-delimited-table");   
     	  header("Content-disposition: filename=/home.10.3/lldiffus/www/lldiffusion_export.csv");   
     
      	 if (mysql_num_rows($resQuery) != 0) 
    	 {   
        		 // titre des colonnes   
       		  $fields = mysql_num_fields($resQuery);   
        		  $i = 0;   
        		 while ($i < $fields)
    		 {   
           			echo mysql_field_name($resQuery, $i).";";   
           			$i++;   
        		 }   
         		echo "\n";   
     
        		 // données de la table   
        	 	while ($arrSelect = mysql_fetch_array($resQuery, MYSQL_ASSOC)) 
    		{   
        			  foreach($arrSelect as $elem) 
    			  {   
          			  	echo "$elem;";   
    			  }
          		}   
          		echo "\n";   
         	}
    mais je ne comprends pas.
    Ca ne focntionne pas. Il ne me créé par le ficheir csv sur le serveur et c'est internet explorer qui veut le telecharger.
    Et quand je le telecharge via internet explorer, en l'ouvrant j'ai le message d'erreur :

    le fichier ne peut être ouvert en entier...

    Pouvez-vous m'aider.

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Points : 304
    Points
    304
    Par défaut
    En utilisant Header, tu forces les echos à écrire dans un fichier allant se placer chez le client.
    A mon sens, au lieu de cela, tu devrais utiliser les fonctions fOpen, fWrite et fClose pour écrire dans un fichier côté serveur.
    Quand un problème a une solution, rien ne sert de s'inquiéter. Quand il n'y a pas de solution, s'inquiéter n'arrange rien.

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Je ne sais pas si c'est la meilleure solution, mais personnellement j'utilise :

    Exemple d'utilisation :

    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
    ob_start();
    print $monchamp;
     
    $contents = ob_get_contents();
    ob_end_clean();
     
    $filename = "monfichier.csv";
     
    if(!$handle = fopen(BASEDIRFILE.$filename, 'w+')) {
       echo 'Impossible d\'ouvrir le fichier ('.$filename.')';
       exit;
    }
     
    if(fwrite($handle, $contents) === false) {
       echo 'Impossible d\'écrire dans le fichier ('.$filename.')';
       exit;
    }
     
    fclose($handle);

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2007
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Tu dois remplacer la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      header("Content-disposition: filename=/home.10.3/lldiffus/www/lldiffusion_export.csv");
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Content-Disposition: attachment; filename=lldiffusion_export.csv");

Discussions similaires

  1. Créer un fichier XML sur un serveur FTP distant
    Par Stouille89 dans le forum Langage
    Réponses: 11
    Dernier message: 03/01/2011, 18h32
  2. [CSV] Créer un fichier CSV en PHP
    Par reedbedroom dans le forum Langage
    Réponses: 2
    Dernier message: 01/04/2009, 14h10
  3. [CSV] créer un fichier .csv
    Par saraza dans le forum Langage
    Réponses: 1
    Dernier message: 20/01/2009, 09h57
  4. Réponses: 27
    Dernier message: 06/06/2007, 15h15
  5. [CSV] Créer un fichier csv depuis php
    Par jbidou88 dans le forum Langage
    Réponses: 5
    Dernier message: 07/05/2007, 17h41

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