Naprawiam kilka skryptów PHP i brakuje mi ładnej drukarki Rubiego. to znaczy
require 'pp'
arr = {:one => 1}
pp arr
wyświetli {: one => 1}. Działa to nawet w przypadku dość złożonych obiektów i znacznie ułatwia zagłębianie się w nieznany skrypt. Czy istnieje sposób na zduplikowanie tej funkcji w PHP?
php
pretty-print
Aaron Lee
źródło
źródło
print_r()
automatycznie wyprowadza i nie zwraca niczego (chyba że jego drugi parametr totrue
), więc nie można łączyć z innym ciągiem. Zamiast tego użyj następującego:function pr($var) { print '<pre>'; print_r($var); print '</pre>'; }
Oto, czego używam do drukowania moich tablic:
Magia pochodzi z
pre
metki.źródło
var_dump
z powoduvar_dump
wykończenia wynik, jeśli jest to duża tablica lub duży ciąg ...print_r
:$formatted = print_r($array, true); print "<pre>" . htmlspecialchars($formatted, ENT_QUOTES, 'UTF-8', true) . "</pre>";
Dla uproszczenia nie można pokonać print_r () i var_dump () . Jeśli chcesz czegoś bardziej wyszukanego lub masz do czynienia z dużymi listami i / lub głęboko zagnieżdżonymi danymi, Krumo znacznie ułatwi ci życie - zapewnia ładnie sformatowany zwijany / rozwijany wyświetlacz.
źródło
Najlepsze, jakie dotychczas znalazłem, to:
A jeśli chcesz, aby było bardziej szczegółowe:
Dodanie
<pre>
tagu HTML w środowisku programistycznym stron internetowych będzie\n
poprawnie uwzględniać znaki nowej linii funkcji drukowania, bez konieczności dodawania niektórych html<br>
źródło
W przypadku PHP można łatwo wykorzystać HTML i kilka prostych rekursywnych kodów, aby stworzyć ładną reprezentację zagnieżdżonych tablic i obiektów.
Spowoduje to wydrukowanie tablicy jako listy zagnieżdżonych list HTML. HTML i Twoja przeglądarka zadbają o wcięcie i uczynienie go czytelnym.
źródło
A co z print_r?
http://www.php.net/print_r
źródło
Pamiętaj, aby ustawić
html_errors = on
w php.ini, aby uzyskać ładny wydruk var_dump () w połączeniu z xdebug.źródło
Najlepszym sposobem na to jest
Przykład:
Wynik:
Tablica
(
[foo] => 999
[bar] => 888
[poo] => Tablica
(
[x] => 111
[y] => 222
[z] => 333
)
)
Przeczytaj więcej o print_r .
O drugim parametrze print_r "true" z dokumentacji:
źródło
Jest to mała funkcja, której używam cały czas, jest przydatna, jeśli debugujesz tablice. Parametr tytułu podaje pewne informacje debugowania, takie jak drukowana tablica. sprawdza również, czy podałeś mu prawidłową tablicę i informuje, jeśli tego nie zrobiłeś.
Podstawowe użycie:
Wyniki:
źródło
do wysłania do syslog lub eventlog dla Windows
źródło
Jeśli robisz więcej debugowania, Xdebug jest niezbędny. Domyślnie zastępuje
var_dump()
swoją własną wersją, która wyświetla o wiele więcej informacji niż domyślnavar_dump()
wersja PHP .Jest też Zend_Debug .
źródło
Nie widziałem, żeby ktokolwiek wspominał o robieniu "przecinka prawda" za pomocą polecenia print_r, a następnie MOŻESZ używać go w tekście z html bez przechodzenia przez wszystkie dostępne obręcze lub niechlujne rozwiązania.
źródło
htmlspecialchars()
toprint_r()
w celu ochrony przed potencjalnie przechowywanymi zagrożeniami XSS.jednowierszowy odpowiednik „źródła przeglądania” w celu wyświetlenia zawartości tablicy:
zakłada php 4.3.0+:
echo nl2br(str_replace(' ', ' ', print_r($_SERVER, true)));
źródło
Ta funkcja działa całkiem dobrze, o ile ustawisz ją
header('Content-type: text/plain');
przed wyświetleniem zwracanego ciąguhttp://www.php.net/manual/en/function.json-encode.php#80339
źródło
Jeśli chcesz ładniejszej reprezentacji dowolnej zmiennej PHP (niż zwykły tekst), sugeruję wypróbowanie nice_r () ; wypisuje wartości oraz istotne przydatne informacje (np. właściwości i metody obiektów). Zastrzeżenie: sam to napisałem.
źródło
Ładny kolorowy wydruk:
echo svar_dump (array ("a", "b" => "2", "c" => array ("d", "e" => tablica ("f", "g"))));
będzie wyglądać następująco:
źródło:
źródło
Odkąd znalazłem to przez Google, szukając sposobu sformatowania json, aby był bardziej czytelny do rozwiązywania problemów.
źródło
Jeśli Twój serwer sprzeciwia się zmianie nagłówków (na zwykły tekst) po wysłaniu niektórych lub jeśli nie chcesz zmieniać kodu, po prostu „wyświetl źródło” w przeglądarce twój edytor tekstu (nawet notatnik) przetworzy nowe linie lepsze niż twoja przeglądarka i zmienią pomieszany bałagan:
Array ([root] => 1 [sub1] => Array () [sub2] => Array () [sub3] => Array () [sub4] => Array () ...
do odpowiedniej reprezentacji z zakładkami:
źródło
Jeśli chcesz użyć wyniku w dalszych funkcjach, możesz uzyskać prawidłowe wyrażenie PHP jako ciąg znaków za pomocą var_export :
W przypadku wielu rzeczy, które ludzie robią w swoich pytaniach, mam nadzieję, że poświęcili funkcję i nie kopiują, wklejając dodatkowe logowanie.
var_export
osiąga podobny wynik jakvar_dump
w takich sytuacjach.źródło
Oto wersja pp, która działa zarówno dla obiektów, jak i tablic (usunąłem również przecinki):
źródło
Oto kolejny prosty zrzut bez całego narzutu print_r:
źródło
Myślę, że najlepszym rozwiązaniem dla ładnego drukowania json w php jest zmiana nagłówka:
(jeśli wykonasz tekst / json, wiele przeglądarek poprosi o pobranie ... Facebook robi tekst / javascript dla swojego protokołu graficznego, więc nie może być tak źle)
źródło
FirePHP to wtyczka do przeglądarki Firefox, która drukuje ma całkiem niezłą funkcję logowania.
źródło
Lub użyj zewnętrznych bibliotek, takich jak REF: https://github.com/digitalnature/php-ref
źródło
Rozszerzając odpowiedź @ stephena, dodałem kilka bardzo drobnych poprawek do celów wyświetlania.
Sformatuje dowolną wielowymiarową tablicę w następujący sposób:
źródło
Oto, czego zwykle używam:
źródło
Zrobiłem tę funkcję, aby wydrukować tablicę do debugowania:
Mam nadzieję, że to pomoże, Tziuka S.
źródło
Co powiesz na pojedynczą samodzielną funkcję nazwaną jako debug z https://github.com/hazardland/debug.php .
Typowy wynik debug () html wygląda następująco:
Ale możesz wyprowadzać dane jako zwykły tekst z tą samą funkcją (z 4 wcięciami spacjami) w ten sposób (a nawet zaloguj się do pliku, jeśli to konieczne):
źródło
W PHP 5.4 możesz użyć JSON_PRETTY_PRINT, jeśli używasz funkcji json_encode.
http://php.net/manual/en/function.json-encode.php
źródło
Połączyłem kilka z tych opcji razem w małą funkcję pomocniczą w
http://github.com/perchten/neat_html/
Możesz drukować do html, starannie wyprowadzać, a także jsonify ciąg, automatyczne drukowanie lub powrót itp.
Obsługuje pliki, obiekty, tablice, wartości null vs false i tym podobne.
Istnieje również kilka globalnie dostępnych (ale dobrze określonych) pomocników do używania ustawień w sposób bardziej zbliżony do środowiska
Plus dynamiczne, oparte na tablicach lub opcjonalne argumenty łańcuchowe.
I ciągle do tego dodaję. Więc to jest obsługiwane: D
źródło