Je corrige quelques scripts PHP et il me manque la jolie imprimante de ruby. c'est à dire
require 'pp'
arr = {:one => 1}
pp arr
affichera {: one => 1}. Cela fonctionne même avec des objets assez complexes et facilite grandement l'exploration d'un script inconnu. Existe-t-il un moyen de dupliquer cette fonctionnalité en PHP?
php
pretty-print
Aaron Lee
la source
la source
print_r()
automatiquement et ne renvoie rien (sauf si son deuxième paramètre esttrue
), vous ne pouvez donc pas concaténer à une autre chaîne. Utilisez plutôt ce qui suit:function pr($var) { print '<pre>'; print_r($var); print '</pre>'; }
Voici ce que j'utilise pour imprimer mes tableaux:
La magie vient avec l'
pre
étiquette.la source
var_dump
parce que lesvar_dump
garnitures le résultat si elle est un grand tableau ou une grande chaîne ...print_r
:$formatted = print_r($array, true); print "<pre>" . htmlspecialchars($formatted, ENT_QUOTES, 'UTF-8', true) . "</pre>";
Pour plus de simplicité, print_r () et var_dump () sont imbattables. Si vous voulez quelque chose d'un peu plus sophistiqué ou si vous avez affaire à de grandes listes et / ou à des données profondément imbriquées, Krumo vous facilitera la vie beaucoup - il vous offre un affichage de réduction / expansion bien formaté.
la source
Le meilleur que j'ai trouvé à ce jour est celui-ci:
Et si vous le souhaitez plus détaillé:
L'ajout d'une
<pre>
balise HTML dans un environnement de développement Web respectera\n
correctement les nouvelles lignes de la fonction d'impression, sans avoir à ajouter du html<br>
la source
Pour PHP, vous pouvez facilement profiter du HTML et d'un simple code récursif pour faire une jolie représentation de tableaux et d'objets imbriqués.
Cela imprimera le tableau sous forme de liste de listes HTML imbriquées. HTML et votre navigateur se chargeront de l'indentation et de le rendre lisible.
la source
Et print_r?
http://www.php.net/print_r
la source
N'oubliez pas de définir
html_errors = on
dans php.ini pour obtenir une jolie impression de var_dump () en combinaison avec xdebug.la source
La meilleure façon de procéder est
Exemple:
Résultat:
Array
(
[foo] => 999
[bar] => 888
[poo] => Array
(
[x] => 111
[y] => 222
[z] => 333
)
)
En savoir plus sur print_r .
À propos du deuxième paramètre de print_r "true" de la documentation:
la source
C'est une petite fonction que j'utilise tout le temps, c'est pratique si vous déboguez des tableaux. Le paramètre title vous donne des informations de débogage sur le tableau que vous imprimez. il vérifie également si vous lui avez fourni un tableau valide et vous permet de savoir si vous ne l'avez pas fait.
Utilisation de base:
Résultats:
la source
à envoyer à syslog ou eventlog pour windows
la source
Si vous faites plus de débogage, Xdebug est essentiel. Par défaut, il remplace
var_dump()
avec sa propre version qui affiche beaucoup plus d'informations que la valeur par défaut de PHPvar_dump()
.Il y a aussi Zend_Debug .
la source
Je n'ai pas vu que quiconque ait mentionné faire une "virgule vraie" avec votre commande print_r, et ensuite vous POUVEZ l'utiliser en ligne avec html sans passer par tous les cerceaux ou les solutions multi-salissantes fournies.
la source
htmlspecialchars()
tour duprint_r()
, pour vous protéger contre les menaces XSS éventuellement stockées.un one-liner qui vous donnera l'équivalent approximatif de "visualisation de la source" pour voir le contenu du tableau:
suppose php 4.3.0+:
echo nl2br(str_replace(' ', ' ', print_r($_SERVER, true)));
la source
Cette fonction fonctionne plutôt bien tant que vous la définissez
header('Content-type: text/plain');
avant de sortir la chaîne de retourhttp://www.php.net/manual/en/function.json-encode.php#80339
la source
Si vous voulez une meilleure représentation de n'importe quelle variable PHP (que du texte brut), je vous suggère d'essayer nice_r () ; il imprime les valeurs ainsi que les informations utiles pertinentes (par exemple: propriétés et méthodes des objets). Avertissement: j'ai écrit ceci moi-même.
la source
Une jolie sortie colorée:
echo svar_dump (array ("a", "b" => "2", "c" => array ("d", "e" => array ("f", "g"))));
ressemblera à:
la source:
la source
Depuis que j'ai trouvé cela via Google en recherchant comment formater json pour le rendre plus lisible pour le dépannage.
la source
Si votre serveur s'oppose à ce que vous changiez les en-têtes (en texte brut) après que certains aient été envoyés, ou si vous ne voulez pas changer votre code, simplement "afficher la source" depuis votre navigateur - votre éditeur de texte (même le bloc-notes) traitera nouvelles lignes mieux que votre navigateur, et transformera un désordre confus:
Array ([root] => 1 [sub1] => Array () [sub2] => Array () [sub3] => Array () [sub4] => Array () ...
dans une représentation correctement tabulée:
la source
Si vous souhaitez utiliser le résultat dans d'autres fonctions, vous pouvez obtenir une expression PHP valide sous forme de chaîne en utilisant var_export :
Pour beaucoup de choses que les gens font dans leurs questions, j'espère qu'ils ont dédié une fonction et qu'ils ne copient pas la journalisation supplémentaire.
var_export
obtient un résultat similaire àvar_dump
dans ces situations.la source
Voici une version de pp qui fonctionne aussi bien pour les objets que pour les tableaux (j'ai également retiré les virgules):
la source
Voici un autre vidage simple sans tous les frais généraux de print_r:
la source
Je pense que la meilleure solution pour une jolie impression de json en php est de changer l'en-tête:
(si vous faites du texte / json, de nombreux navigateurs demanderont un téléchargement ... Facebook fait du texte / javascript pour leur protocole graphique, donc cela ne doit pas être trop mauvais)
la source
FirePHP est un plugin Firefox qui imprime a une fonction de journalisation bien jolie.
la source
Ou utilisez des bibliothèques externes comme REF: https://github.com/digitalnature/php-ref
la source
En développant la réponse de @ stephen, nous avons ajouté quelques modifications très mineures à des fins d'affichage.
Formatera n'importe quel tableau multidimensionnel comme ceci:
la source
C'est ce que j'utilise habituellement:
la source
J'ai créé cette fonction pour imprimer un tableau pour le débogage:
J'espère que cela aide, Tziuka S.
la source
Que diriez-vous d'une seule fonction autonome nommée debug sur https://github.com/hazardland/debug.php .
La sortie html typique de debug () ressemble à ceci:
Mais vous pouvez également générer des données sous forme de texte brut avec la même fonction (avec 4 tabulations en retrait d'espacement) comme ceci (et même les enregistrer dans un fichier si nécessaire):
la source
En PHP 5.4, vous pouvez utiliser JSON_PRETTY_PRINT si vous utilisez la fonction json_encode.
http://php.net/manual/en/function.json-encode.php
la source
J'ai rassemblé quelques-unes de ces options dans une toute petite fonction d'aide à
http://github.com/perchten/neat_html/
Vous pouvez imprimer au format html, soigneusement sorti, ainsi que jsonify la chaîne, l'impression automatique ou le retour, etc.
Il gère les fichiers inclus, les objets, les tableaux, les valeurs nulles par rapport aux faux et autres.
Il existe également des aides accessibles dans le monde entier (mais bien étendues) pour l'utilisation des paramètres d'une manière plus proche de l'environnement
Plus des arguments optionnels dynamiques, basés sur un tableau ou une chaîne.
Et je continue à y ajouter. Donc c'est pris en charge: D
la source