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 :

[Tableaux] Afficher le contenu d'un tableau


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut [Tableaux] Afficher le contenu d'un tableau
    Bonjour,

    Je débute en PHP (je connais cependant le C++). Voici un code générant du html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      $info_box_contents = array();
      $info_box_contents[] = array('form' => tep_draw_form('quick_find', tep_href_link(FILENAME_ADVANCED_SEARCH_RESULT, '', 'NONSSL', false), 'get'),
                                   'align' => 'center',
                                   'text' => tep_draw_input_field('keywords', '', 'size="10" maxlength="30" ') . '&nbsp;' . tep_hide_session_id() . tep_template_image_submit('button_quick_find.gif', BOX_HEADING_SEARCH) . '<br>' . BOX_SEARCH_TEXT . '<br><a href="' . tep_href_link(FILENAME_ADVANCED_SEARCH) . '"><b>' . BOX_SEARCH_ADVANCED_SEARCH . '</b></a>');
    Je souhaiterai l'afficher dans un fichier afin de comprendre ligne par ligne ce qu'il fait, récupérer une partie du code en clair et le mettre ailleurs. Mais je n'arrive pas à afficher mes éléments. Quand j'utilise la fonction 'print_r' mon code est bien affiché mais le html est interpreté. J'aimerai faire une fonction qui fait print_r sauf que j'écris le résultat dans un fichier.

    Merci de votre aide.

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    tu peux utiliser les fonction ob_*() qui te permettent de mémoriser la sortie:

    ob_start() avant ta sortie permet de garder dans un buffer tout ce qui devrait s'afficher a l'écran.

    ob_get_contents() permet de récupérer dans une string le contenu (et donc de l'écrire dans un fichier directement)

    ob_end_clean() se met a la fin, quand tu n'as plus besoin de garder la sortie en mémoire.

    ob_end_flush() est équivalent sauf qu'en plus il affiche la sortie comme s'il ne l'avait pas capturée

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut
    Ca ne marche pas, dans mon fichier j'ai écris "Array". Voilà le code que j'ai apporté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //----------------------------------------------------------------------
    print_r($info_box_contents);
    $out1 = ob_get_contents();
    $fichier = fopen('c:\\test.txt','w+');
    fwrite($fichier,"variable : $info_box_contents");
    fclose($fichier);
    //----------------------------------------------------------------------
    A l'écran j'ai bien ma page, mais dans mon fichier je n'ai aps le code html.

  4. #4
    Membre émérite Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Par défaut
    pour le print_r, tu peux faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<pre>'.print_r($infos_box_contents, true).'</pre>';
    Le HTML ne sera pas interprété, et les \n et autres \t que renvoie le print_r seront interprétés

    edit : c'est normal que tu ai 2 \ dans ton chemin d'accès au fichier? Si tu as des simples quotes, ça risque de poser problème.

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Par défaut
    Désolé ça ne marche pas.

    J'ai même essayé comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //----------------------------------------------------------------------
    print_r($info_box_contents);
    $foo = ob_get_contents(); 
    $fichier = fopen('c:\\test.txt','w+');
    fwrite($fichier,"variable : $foo");
    fclose($fichier);
    //----------------------------------------------------------------------
    Mais mon fichier reste vide. Par contre le code est affiché sur ma page.


    Je pense que le problème vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $info_box_contents = array();
    $info_box_contents[] = array(
    Il s'agit certainement d'un tableau de tableau ?? J'ai essayé de faire des test en php (que je découvre) avec des foreach mais ça ne donne rien...

  6. #6
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Bonjour,

    As-tu bien mis ob_start() avant print_r() au début de ton script pour démarrer la bufferisation ?
    Si oui il semblerait, a ce niveau que ton tableau soit vide à ce niveau là, il faut peut etre utiliser les fonction ob_*() un peu plus tard.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/09/2007, 21h11
  2. Réponses: 3
    Dernier message: 03/07/2006, 13h45
  3. Afficher le contenu d'un tableau
    Par hayam_kin dans le forum C
    Réponses: 9
    Dernier message: 25/04/2006, 21h16
  4. [Tableaux] afficher le contenu d'un tableau php
    Par moons dans le forum Langage
    Réponses: 9
    Dernier message: 08/02/2006, 15h12
  5. Réponses: 2
    Dernier message: 20/11/2005, 18h54

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