Saya sedang memperbaiki beberapa skrip PHP dan saya kehilangan printer cantik dari Ruby. yaitu
require 'pp'
arr = {:one => 1}
pp arr
akan mengeluarkan {: one => 1}. Ini bahkan bekerja dengan objek yang cukup kompleks dan membuat penggalian ke dalam skrip yang tidak dikenal jauh lebih mudah. Apakah ada cara untuk menduplikasi fungsi ini di PHP?
php
pretty-print
Aaron Lee
sumber
sumber
print_r()
secara otomatis mengeluarkan dan tidak mengembalikan apa pun (kecuali parameter keduanya adalahtrue
), jadi Anda tidak dapat menggabungkan ke string lain. Gunakan yang berikut ini sebagai gantinya:function pr($var) { print '<pre>'; print_r($var); print '</pre>'; }
Inilah yang saya gunakan untuk mencetak array saya:
Keajaiban datang dengan
pre
tag.sumber
var_dump
karenavar_dump
memangkas hasil jika itu array besar atau string besar ...print_r
:$formatted = print_r($array, true); print "<pre>" . htmlspecialchars($formatted, ENT_QUOTES, 'UTF-8', true) . "</pre>";
Untuk kesederhanaan, print_r () dan var_dump () tidak bisa dikalahkan. Jika Anda menginginkan sesuatu yang sedikit lebih menarik atau berurusan dengan daftar besar dan / atau data yang sangat bertingkat, Krumo akan membuat hidup Anda lebih mudah - ini memberi Anda tampilan runtuh / meluas yang diformat dengan baik.
sumber
Yang terbaik yang saya temukan adalah ini:
Dan jika ingin lebih detail:
Menambahkan
<pre>
tag HTML di lingkungan pengembangan web akan menghormati baris baru\n
dari fungsi cetak dengan benar, tanpa harus menambahkan beberapa html<br>
sumber
Untuk PHP, Anda dapat dengan mudah memanfaatkan HTML dan beberapa kode rekursif sederhana untuk membuat representasi cantik dari objek dan array bersarang.
Ini akan mencetak array sebagai daftar daftar HTML bersarang. HTML dan browser Anda akan mengurus indentasi dan membuatnya dapat dibaca.
sumber
Bagaimana dengan print_r?
http://www.php.net/print_r
sumber
Ingatlah untuk mengatur
html_errors = on
di php.ini untuk mendapatkan hasil cetak yang bagus dari var_dump () yang dikombinasikan dengan xdebug.sumber
Cara terbaik untuk melakukannya adalah
Contoh:
Hasil:
Larik
(
[foo] => 999
[bar] => 888
[poo] => Array
(
[x] => 111
[y] => 222
[z] => 333
)
)
Baca lebih lanjut tentang print_r .
Tentang parameter kedua print_r "true" dari dokumentasi:
sumber
Ini adalah fungsi kecil yang saya gunakan sepanjang waktu yang berguna jika Anda men-debug array. Parameter judul memberi Anda beberapa info debug sebagai larik apa yang Anda cetak. itu juga memeriksa apakah Anda telah menyediakannya dengan array yang valid dan memberi tahu Anda jika tidak.
Penggunaan dasar:
Hasil:
sumber
untuk mengirim ke syslog atau eventlog untuk windows
sumber
Jika Anda melakukan lebih banyak debugging, Xdebug sangat penting. Secara default itu menimpa
var_dump()
dengan versinya sendiri yang menampilkan lebih banyak informasi daripada default PHPvar_dump()
.Ada juga Zend_Debug .
sumber
Saya tidak melihat bahwa ada orang yang menyebutkan melakukan "koma true" dengan perintah print_r Anda, dan kemudian Anda BISA menggunakannya sebaris dengan html tanpa melalui semua rintangan atau solusi yang tampak multi-berantakan yang disediakan.
sumber
htmlspecialchars()
sekitarprint_r()
, untuk melindungi dari kemungkinan ancaman XSS yang disimpan.satu baris yang akan memberi Anda persamaan kasar dari "melihat sumber" untuk melihat konten larik:
mengasumsikan php 4.3.0+:
echo nl2br(str_replace(' ', ' ', print_r($_SERVER, true)));
sumber
Fungsi ini bekerja dengan baik selama Anda mengaturnya
header('Content-type: text/plain');
sebelum mengeluarkan string kembalihttp://www.php.net/manual/en/function.json-encode.php#80339
sumber
Jika Anda menginginkan representasi yang lebih baik dari variabel PHP apa pun (daripada hanya teks biasa), saya sarankan Anda mencoba nice_r () ; itu mencetak nilai plus informasi berguna yang relevan (misalnya: properti dan metode untuk objek). Penafian: Saya menulis ini sendiri.
sumber
Keluaran berwarna bagus:
echo svar_dump (larik ("a", "b" => "2", "c" => larik ("d", "e" => larik ("f", "g"))));
akan terlihat seperti:
sumber:
sumber
Karena saya menemukan ini melalui google mencari cara memformat json agar lebih mudah dibaca untuk pemecahan masalah.
sumber
Jika server Anda keberatan jika Anda mengubah header (ke teks biasa) setelah beberapa dikirim, atau jika Anda tidak ingin mengubah kode, cukup "lihat sumber" dari browser Anda editor teks Anda (bahkan buku catatan) akan memproses baris baru lebih baik dari browser Anda, dan akan mengubah kekacauan menjadi:
Array ([root] => 1 [sub1] => Array () [sub2] => Array () [sub3] => Array () [sub4] => Array () ...
menjadi representasi tab yang benar:
sumber
Jika Anda ingin menggunakan hasilnya dalam fungsi lebih lanjut, Anda bisa mendapatkan ekspresi PHP yang valid sebagai string menggunakan var_export :
Untuk banyak hal yang dilakukan orang dalam pertanyaan mereka, saya berharap mereka telah mendedikasikan sebuah fungsi dan tidak menyalin tempelan log ekstra di sekitarnya.
var_export
mencapai hasil yang serupavar_dump
dalam situasi ini.sumber
Berikut adalah versi pp yang berfungsi untuk objek serta array (saya juga menghilangkan koma):
sumber
Berikut dump sederhana lainnya tanpa semua overhead print_r:
sumber
Saya pikir solusi terbaik untuk mencetak json cantik di php adalah dengan mengubah header:
(jika Anda menggunakan teks / json, banyak browser akan meminta unduhan ... facebook melakukan teks / javascript untuk protokol grafik mereka sehingga tidak terlalu buruk)
sumber
FirePHP adalah plugin firefox yang memiliki fitur pencatatan yang cukup bagus.
sumber
Atau Gunakan perpustakaan eksternal seperti REF: https://github.com/digitalnature/php-ref
sumber
Memperluas jawaban @ stephen, menambahkan beberapa perubahan kecil untuk tujuan tampilan.
Akan memformat array multidimensi seperti ini:
sumber
Ini yang biasa saya gunakan:
sumber
Saya membuat fungsi ini untuk mencetak array untuk debugging:
Semoga membantu, Tziuka S.
sumber
Bagaimana dengan satu fungsi mandiri bernama debug dari https://github.com/hazardland/debug.php .
Keluaran html debug () tipikal terlihat seperti ini:
Tetapi Anda dapat mengeluarkan data sebagai teks biasa dengan fungsi yang sama juga (dengan 4 spasi tab berlekuk) seperti ini (dan bahkan memasukkannya ke dalam file jika diperlukan):
sumber
Di PHP 5.4 Anda dapat menggunakan JSON_PRETTY_PRINT jika Anda menggunakan fungsi json_encode.
http://php.net/manual/en/function.json-encode.php
sumber
Saya menarik beberapa opsi ini bersama-sama menjadi fungsi pembantu kecil di
http://github.com/perchten/neat_html/
Anda dapat mencetak ke html, dikeluarkan dengan rapi, serta jsonify string, cetak otomatis atau kembali, dll.
Ini menangani file termasuk, objek, array, nulls vs false dan sejenisnya.
Ada juga beberapa pembantu yang dapat diakses secara global (tetapi memiliki cakupan yang baik) untuk saat menggunakan pengaturan dengan cara yang lebih mirip lingkungan
Ditambah argumen opsional dinamis, berbasis larik, atau string.
Dan, saya terus menambahkannya. Jadi didukung: D
sumber