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 :

recherche code recursif générique (pas bô var_dump)


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 27
    Points : 26
    Points
    26
    Par défaut recherche code recursif générique (pas bô var_dump)
    Bonjour à tous,

    Dans le cadre de fonctionnalité de débogage, je souhaiterais pouvoir ajouter facilement des outils de surveillance, j'aimerais que ces outils soient génériques afin de les réutiliser le plus souvent possible...

    Auriez-vous un snippet, une fonction ou encore une classe que je pourais réutiliser et qui aurait donc la capacité de parcourir n'importe quel tableau de manière récursive (profondeur des tableaux inconnus) et d'afficher son contenu clairement (indenté, sous forme d'un arbre ou encore d'un joli tableau) dans le code généré (résultat html)?

    var_dump! vous allez crier (ca fait fort Allemand ). Mais je ne trouve pas le résultat sympa et lisible.

    Merci de m'aider à ne pas réinventer la roue.
    Si vous avez des liens vers des sites qui proposent ce genre d'objet de qualité et qui possèdent un moteur de recherche bien foutu pour retrouver les fonctions, je suis aussi preneur!!

  2. #2
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Peut être simplement que faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo "<pre>".print_r($array, true)."</pre>"; ?>
    Peut suffire ?

  3. #3
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    xdebug rends var_dump 'achement sexy, exemple chez moi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    array
      'a' => int 1
      'b' => 
        array
          'b.1' => int 2
          'b.2' => 
            array
              'b.2.1' => string 'hello' (length=5)
      'c' => 
        object(stdClass)[1]
          int 1
          int 2
          int 3
    Avec de la couleur en plus ^^

    Sinon, tu peux utiliser echo "<pre>"; var_dump($something); echo "</pre>" pour avoir un affichage correct.

    Mais pour répondre à ta question, voici un snippet pour PHP 5.3 qui rends bien service:
    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
    $a = array(
    	'a' => 1,
    	'b' => array(
    		'b.1' => 2,
    		'b.2' => array(
    			'b.2.1' => 'hello',
    		),
    	),
    	'c' => (object)array(1,2,3),
    );
     
    $_ = function ($value, $key = null, $indent = 0) use (&$_) {
    	echo str_repeat('|  ', $indent) . "+ " . ($key ? "$key : " : "");
    	if ($value instanceOf Traversable || is_array($value)) {
    		echo is_array($value) ? "array\n" : "object\n";
    		foreach ($value as $k => $v) {
    			$_($v,$k,$indent+1);
    		}
    	}
    	else {
    		if (is_object($value) && !is_callable(array($value, '__toString')))
    			$value = "object";
    		echo "$value\n";
    	}
    };
     
    ob_start();
    $_($a);
    $buffer = ob_get_clean();
     
    echo str_replace(array(' ', "\n"), array('&nbsp;','<br />'), $buffer);

  4. #4
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    Hum, c'est sûr que var_dump est moche si tu n'active pas le html_errors dans ton php.ini. As-tu activé cette option ? Et as-tu installé xdebug ? Si ce n'est pas le cas, fais-le avant de coder ta propre fonction

    Sinon non, pas de fonction à te proposer...
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/04/2008, 10h37
  2. Mon code n'est pas interprété !
    Par korriganez dans le forum Langage
    Réponses: 3
    Dernier message: 31/05/2006, 15h46
  3. Réponses: 11
    Dernier message: 29/06/2005, 17h55
  4. Recherche code source Photosticher
    Par mathieu_t dans le forum OpenGL
    Réponses: 2
    Dernier message: 02/07/2004, 08h18
  5. Recherche code d'un fifo,ou explication
    Par don-diego dans le forum C
    Réponses: 8
    Dernier message: 25/07/2002, 10h26

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