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 :

Mettre le résultat d'un script php dans un fichier


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 240
    Points : 65
    Points
    65
    Par défaut Mettre le résultat d'un script php dans un fichier
    Bonjour
    j'ai un script PHP qui s'execute correctement. il execute une requete select et affiche le resultat dans un tableau qui s'affiche sur une page web. ce que je voudrais c'est que non seulement je veux l'afficher mais je veux aussi mettre le resultat dans un fichier.
    comment le faire?

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    utilise la fonction fwrite , tu as un exemple dans la doc .

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 240
    Points : 65
    Points
    65
    Par défaut
    j'ai oublié de préciser que le tableau est un tableau html et non php est ce que fwrite va toujours marcher?

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    tu écris ce que tu veux dans un fichier.

  5. #5
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 240
    Points : 65
    Points
    65
    Par défaut
    pour faire plus simple voila mon code
    peux tu etre plus precis s'il te plait??
    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
    <?php	                                                                                                                                                                                                                                                                                                                                                                                                   
    			if($nrows > 0)                                                                                                                                                                                                                                  
    			{                                                                                                                                                                                                                                               
    				$fichier = fopen("resultat.txt","w");                                                                                                                                                                                                   
    				print "<table border = \"0\">\n";                                                                                                                                                                                                       
    				print "<tr>\n";                                                                                                                                                                                                                         
    				while (list($key, $val) = each($results))                                                                                                                                                                                               
    				{                                                                                                                                                                                                                                       
    					fwrite($fichier,html_entity_decode($results));                                                                                                                                                                                  
    					print"<th>$key</th>\n";	                                                                                                                                                                                                        
    				}                                                                                                                                                                                                                                       
    				print"</tr>\n";                                                                                                                                                                                                                         
    				for ($i = 0; $i < $nrows; $i++)                                                                                                                                                                                                         
    				{                                                                                                                                                                                                                                       
    					reset($results);                                                                                                                                                                                                                
          					print "<TR>\n";	                                                                                                                                                                                                                
          					while($column = each($results))                                                                                                                                                                                                 
          					{                                                                                                                                                                                                                               
          						$data = $column['value'];                                                                                                                                                                                               
             					print "<TD>$data[$i]</TD>\n";	                                                                                                                                                                                        
          					}                                                                                                                                                                                                                               
          					print "</TR>\n";                                                                                                                                                                                                                
    				}                                                                                                                                                                                                                                       
    				print "</TABLE>\n";                                                                                                                                                                                                                     
    				fclose($fichier);                                                                                                                                                                                                                       
    			ociFreeStatement($stmt);	                                                                                                                                                                                                                
    			}                                                                                                                                                                                                                                               
     
    		ociLogoff($conn);                                                                                                                                                                                                                                       
    ?>

  6. #6
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Et bien au lien de faire des print tu fais des fwrite comme les autres lignes pour écrire ton code html dans le fichier.

  7. #7
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 240
    Points : 65
    Points
    65
    Par défaut
    voila mon nouveau code j'ai juste remplacer le print par des fwrite. mais rien ne s'affiche dans mon fichier.
    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
    <?php	
     
    			if($nrows > 0)
    			{
    				$fichier = fopen("resultat.txt","w");
    				fwrite($fichier, "<table border = \"1\">\n");
    				fwrite ($fichier, "<tr>\n");
    				while (list($key, $val) = each($results))
    				{
    					//fwrite($fichier,html_entity_decode($results));
    					fwrite($fichier, "<th>$key</th>\n");	
    				}
    				fwrite($fichier, "</tr>\n");
    				for ($i = 0; $i < $nrows; $i++)
    				{
    					reset($results);
          					fwrite($fichier, "<TR>\n");	
          					while($column = each($results))
          					{
          						$data = $column['value'];
             					fwrite($fichier, "<TD>$data[$i]</TD>\n");	
          					}
          					fwrite($fichier, "</TR>\n");
    				}
    				fwrite($fichier, "</TABLE>\n");
    				ociFreeStatement($stmt);	
    				fclose($fichier);
    			}
     
    		ociLogoff($conn);
    ?>
    je voudrais que mon tableau s'affiche et qu'il se mette aussi dans le fichier

  8. #8
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Sans remplacer tes print par des fwrite, tu peux aussi utiliser les fonctions de bufferisation ob_* :

    - ob_start() au début de ta page pour récupérer tout ce que écris

    - ob_get_contents() à la fin pour récupérer le tampon et l'écrire dans un fichier

    - ob_end_flush() en dernier pour envoyer le tampon...

  9. #9
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 240
    Points : 65
    Points
    65
    Par défaut
    ça signifie que je dois mettre un ob_get_contents apres chaque print?

  10. #10
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par ledawa Voir le message
    ça signifie que je dois mettre un ob_get_contents apres chaque print?
    Non juste à la fin.

    Quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ob_start();
    echo 'mon tableau';
    //...
    $fichier = fopen("resultat.txt","w");
    fwrite($fichier, ob_get_contents());
    fclose($fichier);
    ob_end_flush();

  11. #11
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 240
    Points : 65
    Points
    65
    Par défaut
    voilà ce que j'ai fait mais rien ne s'affiche dans mon fichier
    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
    if($nrows > 0)
    			{
    				ob_start();
    				print "<table border = \"1\">\n";
    				print "<tr>\n";
    				while (list($key, $val) = each($results))
    				{
    					print"<th>$key</th>\n";	
    				}
    				print"</tr>\n";
    				for ($i = 0; $i < $nrows; $i++)
    				{
    					reset($results);
          					print "<TR>\n";	
          					while($column = each($results))
          					{
          						$data = $column['value'];
             					print "<TD>$data[$i]</TD>\n";	
          					}
          					print "</TR>\n";
    				}
    				print "</TABLE>\n";
    				$fichier = fopen("resultat.txt","w");
    				fwrite($fichier, ob_get_contents());
    				fclose($fichier);
    				ob_end_flush();
    				ociFreeStatement($stmt);	
    			}

  12. #12
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bizarre...

    Tu peux ajouter un test avant ob_end_flush :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $data = ob_get_contents();
    var_dump($data);
    Pour vérifier que ob_get_contents renvoie bien ce que tu veux ?

  13. #13
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 240
    Points : 65
    Points
    65
    Par défaut
    le ob_get_contents contient bien ce que je veux mais il ne le mets pas dans le fichier.

  14. #14
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Et que renvoient fopen et fwrite ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var_dump($fichier);
    $res = fwrite($fichier, ob_get_contents());
    var_dump($res);
    ou même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var_dump($fichier);
    $res = fwrite($fichier, 'du texte');
    var_dump($res);

  15. #15
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 240
    Points : 65
    Points
    65
    Par défaut
    bool(false) bool(false)
    voilà ce que j'ai

  16. #16
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par ledawa Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bool(false) bool(false)
    voilà ce que j'ai
    fopen renvoie false, tu ne peux pas ouvrir ce fichier en écriture.
    Le fichier existe déjà ?
    Si oui, essaie de le supprimer et recommence.
    Sinon, vérifie les droits du répertoire dans lequel tu veux créer le fichier...

Discussions similaires

  1. Mettre un script PHP dans un div
    Par marc.suisse dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 12/06/2009, 11h38
  2. passer le résultat d'un variable php dans un fichier
    Par diabli73 dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 11/12/2008, 10h50
  3. Réponses: 1
    Dernier message: 12/01/2008, 21h45
  4. [PHP-JS] pb lecture script php dans une fonction au démarrage
    Par jerome38000 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/02/2005, 15h07

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