Ich repariere einige PHP-Skripte und vermisse Rubys hübschen Drucker. dh
require 'pp'
arr = {:one => 1}
pp arr
gibt {: one => 1} aus. Dies funktioniert sogar mit ziemlich komplexen Objekten und erleichtert das Durchsuchen eines unbekannten Skripts erheblich. Gibt es eine Möglichkeit, diese Funktionalität in PHP zu duplizieren?
php
pretty-print
Aaron Lee
quelle
quelle
print_r()
automatisch etwas aus und gibt nichts zurück (es sei denn, der zweite Parameter isttrue
), sodass Sie nicht mit einer anderen Zeichenfolge verketten können. Verwenden Sie stattdessen Folgendes:function pr($var) { print '<pre>'; print_r($var); print '</pre>'; }
Folgendes verwende ich zum Drucken meiner Arrays:
Die Magie kommt mit dem
pre
Etikett.quelle
var_dump
weilvar_dump
das Ergebnisprint_r
:$formatted = print_r($array, true); print "<pre>" . htmlspecialchars($formatted, ENT_QUOTES, 'UTF-8', true) . "</pre>";
Der Einfachheit halber sind print_r () und var_dump () nicht zu übertreffen. Wenn Sie etwas ausgefalleneres möchten oder mit großen Listen und / oder tief verschachtelten Daten arbeiten, erleichtert Krumo Ihnen das Leben erheblich - es bietet Ihnen eine schön formatierte Anzeige zum Reduzieren / Erweitern.
quelle
Das Beste, was ich bisher gefunden habe, ist Folgendes:
Und wenn Sie es detaillierter wollen:
Durch das Hinzufügen eines
<pre>
HTML-Tags in einer Webentwicklungsumgebung werden die Zeilenumbrüche\n
der Druckfunktion korrekt berücksichtigt , ohne dass HTML hinzugefügt werden muss<br>
quelle
Für PHP können Sie leicht HTML und einfachen rekursiven Code verwenden, um eine hübsche Darstellung verschachtelter Arrays und Objekte zu erstellen.
Dadurch wird das Array als Liste verschachtelter HTML-Listen gedruckt. HTML und Ihr Browser kümmern sich um das Einrücken und die Lesbarkeit.
quelle
Wie wäre es mit print_r?
http://www.php.net/print_r
quelle
Denken Sie daran,
html_errors = on
in php.ini zu setzen, um var_dump () in Kombination mit xdebug hübsch zu drucken.quelle
Der beste Weg, dies zu tun, ist
Beispiel:
Ergebnis:
Array
(
[foo] => 999
[bar] => 888
[poo] => Array
(
[x] => 111
[y] => 222
[z] => 333
)
)
Lesen Sie mehr über print_r .
Über den zweiten Parameter von print_r "true" aus der Dokumentation:
quelle
Dies ist eine kleine Funktion, die ich ständig benutze. Sie ist praktisch, wenn Sie Arrays debuggen. Der title-Parameter gibt Ihnen einige Debug-Informationen darüber, welches Array Sie drucken. Außerdem wird überprüft, ob Sie ein gültiges Array bereitgestellt haben, und es wird angezeigt, wenn Sie dies nicht getan haben.
Grundlegende Verwendung:
Ergebnisse:
quelle
zum Senden an Syslog oder Eventlog für Windows
quelle
Wenn Sie mehr debuggen, ist Xdebug unerlässlich. Standardmäßig wird es
var_dump()
mit einer eigenen Version überschrieben, die viel mehr Informationen als die Standardversion von PHP anzeigtvar_dump()
.Es gibt auch Zend_Debug .
quelle
Ich habe nicht gesehen, dass jemand erwähnt hat, dass Sie mit Ihrem Befehl print_r ein "Komma wahr" machen, und dann KÖNNEN Sie es inline mit HTML verwenden, ohne alle bereitgestellten Rahmen oder Lösungen zu durchlaufen, die viel chaotisch aussehen.
quelle
htmlspecialchars()
um dieprint_r()
gegen möglicherweise gespeichert XSS Bedrohungen zu schützen.Ein Einzeiler, der Ihnen das grobe Äquivalent von "Anzeigequelle" gibt, um Array-Inhalte anzuzeigen:
geht von PHP 4.3.0+ aus:
echo nl2br(str_replace(' ', ' ', print_r($_SERVER, true)));
quelle
Diese Funktion funktioniert ziemlich gut, solange Sie sie
header('Content-type: text/plain');
vor der Ausgabe der Rückgabezeichenfolge festlegenhttp://www.php.net/manual/en/function.json-encode.php#80339
quelle
Wenn Sie eine schönere Darstellung einer PHP-Variablen wünschen (als nur einfachen Text), empfehlen wir Ihnen, nice_r () zu versuchen . Es druckt Werte sowie relevante nützliche Informationen aus (z. B. Eigenschaften und Methoden für Objekte). Haftungsausschluss: Ich habe das selbst geschrieben.
quelle
Eine schöne farbige Ausgabe:
echo svar_dump (Array ("a", "b" => "2", "c" => Array ("d", "e" => Array ("f", "g")));
Wille sieht aus wie:
Quelle:
quelle
Da ich dies über Google gefunden habe, suche ich nach dem Formatieren von JSON, um es für die Fehlerbehebung besser lesbar zu machen.
quelle
Wenn Ihr Server Einwände gegen das Ändern von Headern (in Klartext) erhebt, nachdem einige gesendet wurden, oder wenn Sie Ihren Code nicht ändern möchten, "Quelltext anzeigen" in Ihrem Browser - Ihr Texteditor (sogar Editor) wird verarbeitet Neue Zeilen sind besser als Ihr Browser und führen zu einem Durcheinander:
Array ([root] => 1 [sub1] => Array () [sub2] => Array () [sub3] => Array () [sub4] => Array () ...
in eine richtig tabellierte Darstellung:
quelle
Wenn Sie das Ergebnis in weiteren Funktionen verwenden möchten, können Sie mit var_export einen gültigen PHP-Ausdruck als Zeichenfolge abrufen :
Für viele Dinge, die Leute in ihren Fragen tun, hoffe ich, dass sie eine Funktion zugewiesen haben und die zusätzliche Protokollierung nicht kopieren und einfügen.
var_export
erzielt eine ähnliche Leistung wievar_dump
in diesen Situationen.quelle
Hier ist eine Version von pp, die sowohl für Objekte als auch für Arrays funktioniert (ich habe auch die Kommas entfernt):
quelle
Hier ist ein weiterer einfacher Speicherauszug ohne den gesamten Aufwand von print_r:
quelle
Ich denke, die beste Lösung für das hübsche Drucken von JSON in PHP ist das Ändern des Headers:
(Wenn Sie Text / JSON ausführen, werden viele Browser zum Herunterladen aufgefordert ... Facebook führt Text / Javascript für das Grafikprotokoll aus, damit es nicht zu schlecht ist.)
quelle
FirePHP ist ein Firefox-Plugin, dessen Druck eine sehr hübsche Protokollierungsfunktion hat.
quelle
Oder verwenden Sie externe Bibliotheken wie REF: https://github.com/digitalnature/php-ref
quelle
Durch die Erweiterung der Antwort von @ stephen wurden einige geringfügige Änderungen für Anzeigezwecke hinzugefügt.
Formatiert jedes mehrdimensionale Array wie folgt:
quelle
Dies ist, was ich normalerweise benutze:
quelle
Ich habe diese Funktion gemacht, um ein Array zum Debuggen zu drucken:
Hoffe es hilft, Tziuka S.
quelle
Wie über eine Funktion einzelnen Standalone - Namen als Debug von https://github.com/hazardland/debug.php .
Typisches Debug () HTML-Ausgabe von sieht folgendermaßen aus:
Sie können Daten jedoch auch als einfachen Text mit derselben Funktion (mit 4 durch Leerzeichen eingerückten Registerkarten) wie folgt ausgeben (und bei Bedarf sogar in einer Datei anmelden):
quelle
In PHP 5.4 können Sie JSON_PRETTY_PRINT verwenden, wenn Sie die Funktion json_encode verwenden.
http://php.net/manual/en/function.json-encode.php
quelle
Ich habe einige dieser Optionen zu einer kleinen Hilfsfunktion zusammengefasst
http://github.com/perchten/neat_html/
Sie können in HTML drucken, ordentlich ausgeben sowie die Zeichenfolge jsonifizieren, automatisch drucken oder zurückgeben usw.
Es behandelt Datei-Includes, Objekte, Arrays, Nullen gegen False und dergleichen.
Es gibt auch einige global zugängliche (aber gut funktionierende) Helfer, wenn Sie Einstellungen umweltähnlicher verwenden
Plus dynamische, Array-basierte oder String-optionale Argumente.
Und ich füge es immer wieder hinzu. Es wird also unterstützt: D.
quelle