Estoy arreglando algunos scripts PHP y me falta la bonita impresora de Ruby. es decir
require 'pp'
arr = {:one => 1}
pp arr
generará {: uno => 1}. Esto incluso funciona con objetos bastante complejos y facilita mucho la búsqueda en un script desconocido. ¿Hay alguna forma de duplicar esta funcionalidad en PHP?
php
pretty-print
Aaron Lee
fuente
fuente
print_r()
genera automáticamente y no devuelve nada (a menos que su segundo parámetro seatrue
), por lo que no puede concatenar a otra cadena. Utilice lo siguiente en su lugar:function pr($var) { print '<pre>'; print_r($var); print '</pre>'; }
Esto es lo que uso para imprimir mis matrices:
La magia viene con la
pre
etiqueta.fuente
var_dump
porquevar_dump
recorta el resultado si es una gran variedad o una gran cadena ...print_r
:$formatted = print_r($array, true); print "<pre>" . htmlspecialchars($formatted, ENT_QUOTES, 'UTF-8', true) . "</pre>";
Por simplicidad, print_r () y var_dump () son inmejorables. Si desea algo un poco más elegante o está tratando con listas grandes y / o datos profundamente anidados, Krumo le hará la vida mucho más fácil: le proporciona una pantalla plegable / expandible con un formato agradable.
fuente
Lo mejor que encontré hasta ahora es este:
Y si lo quieres más detallado:
Agregar una
<pre>
etiqueta HTML en un entorno de desarrollo web respetará correctamente las nuevas líneas\n
de la función de impresión, sin tener que agregar algo de html<br>
fuente
Para PHP, puede aprovechar HTML y un código recursivo simple para hacer una bonita representación de matrices y objetos anidados.
Esto imprimirá la matriz como una lista de listas HTML anidadas. HTML y su navegador se encargarán de sangrarlo y hacerlo legible.
fuente
¿Qué tal print_r?
http://www.php.net/print_r
fuente
Recuerde configurar
html_errors = on
php.ini para obtener una impresión bonita de var_dump () en combinación con xdebug.fuente
La mejor forma de hacer esto es
Ejemplo:
Resultado:
Array
(
[foo] => 999
[bar] => 888
[poo] => Array
(
[x] => 111
[y] => 222
[z] => 333
)
)
Leer más sobre print_r .
Acerca del segundo parámetro de print_r "true" de la documentación:
fuente
Esta es una pequeña función que uso todo el tiempo y es útil si está depurando matrices. El parámetro de título le brinda información de depuración sobre la matriz que está imprimiendo. también comprueba si le ha proporcionado una matriz válida y le permite saber si no lo hizo.
Uso básico:
Resultados:
fuente
para enviar a syslog o eventlog para Windows
fuente
Si está haciendo más depuración, Xdebug es esencial. De forma predeterminada, se reemplaza
var_dump()
con su propia versión, que muestra mucha más información que la predeterminada de PHPvar_dump()
.También está Zend_Debug .
fuente
No vi que nadie mencionara hacer una "coma verdadera" con su comando print_r, y luego PUEDE usarlo en línea con html sin pasar por todos los aros o soluciones de aspecto desordenado proporcionadas.
fuente
htmlspecialchars()
alrededor de laprint_r()
, para proteger contra amenazas XSS posiblemente almacenados.una línea que le dará el equivalente aproximado de "fuente de visualización" para ver el contenido de la matriz:
asume php 4.3.0+:
echo nl2br(str_replace(' ', ' ', print_r($_SERVER, true)));
fuente
Esta función funciona bastante bien siempre que la establezca
header('Content-type: text/plain');
antes de generar la cadena de retornohttp://www.php.net/manual/en/function.json-encode.php#80339
fuente
Si desea una representación más agradable de cualquier variable PHP (que solo texto sin formato), le sugiero que pruebe nice_r () ; imprime valores más información útil relevante (por ejemplo: propiedades y métodos para objetos). Descargo de responsabilidad: escribí esto yo mismo.
fuente
Un buen resultado en color:
echo svar_dump (matriz ("a", "b" => "2", "c" => matriz ("d", "e" => matriz ("f", "g"))));
se verá así:
fuente:
fuente
Desde que encontré esto a través de google buscando cómo formatear json para que sea más legible para la resolución de problemas.
fuente
Si su servidor se opone a que cambie los encabezados (a texto sin formato) después de que se hayan enviado algunos, o si no desea cambiar su código, simplemente "vea el código fuente" desde su navegador editor de texto (incluso el bloc de notas) procesará nuevas líneas mejor que su navegador, y se convertirá en un lío confuso:
Array ([root] => 1 [sub1] => Array () [sub2] => Array () [sub3] => Array () [sub4] => Array () ...
en una representación con pestañas correctamente:
fuente
Si desea utilizar el resultado en más funciones, puede obtener una expresión PHP válida como una cadena usando var_export :
Para muchas de las cosas que la gente hace en sus preguntas, espero que hayan dedicado una función y no copien el registro adicional.
var_export
logra una salida similar avar_dump
en estas situaciones.fuente
Aquí hay una versión de pp que funciona tanto para objetos como para matrices (también saqué las comas):
fuente
Aquí hay otro volcado simple sin toda la sobrecarga de print_r:
fuente
Creo que la mejor solución para imprimir json en php es cambiar el encabezado:
(si usa texto / json, muchos navegadores solicitarán una descarga ... Facebook usa texto / javascript para su protocolo gráfico, por lo que no debe ser tan malo)
fuente
FirePHP es un complemento de Firefox que imprime tiene una característica de registro bastante bonita.
fuente
O use bibliotecas externas como REF: https://github.com/digitalnature/php-ref
fuente
Ampliando la respuesta de @ stephen, se agregaron algunos ajustes menores para fines de visualización.
Formateará cualquier matriz multidimensional así:
fuente
Esto es lo que usualmente uso:
fuente
Hice esta función para imprimir una matriz para depurar:
Espero que te ayude, Tziuka S.
fuente
¿Qué tal una única función independiente denominada depuración de https://github.com/hazardland/debug.php ?
La salida típica de debug () html se ve así:
Pero también puede generar datos como texto sin formato con la misma función (con 4 pestañas con sangría de espacio) de esta manera (e incluso registrarlo en el archivo si es necesario):
fuente
En PHP 5.4 puede usar JSON_PRETTY_PRINT si está usando la función json_encode.
http://php.net/manual/en/function.json-encode.php
fuente
Reuní algunas de estas opciones en una pequeña función de ayuda en
http://github.com/perchten/neat_html/
Puede imprimir en html, con una salida ordenada, así como jsonificar la cadena, imprimir automáticamente o devolver, etc.
Maneja archivos incluidos, objetos, matrices, nulos vs falsos y similares.
También hay algunos ayudantes accesibles globalmente (pero con un buen alcance) para cuando se usa la configuración de una manera más similar al entorno
Además de argumentos opcionales dinámicos, basados en matrices o en cadena.
Y sigo agregando más. Entonces es compatible: D
fuente