php español - ¿Cómo generar(a un registro)una matriz de varios niveles en un formato legible para el ser humano?




django tutorial (6)

Estoy trabajando en un sitio drupal y cuando estoy depurando, siempre tengo que leer arreglos anidados largos. Como resultado, una gran parte de mi vida se utiliza con las teclas de flecha, retorno y tabulación para dividir más de 1000 cadenas de caracteres en un formato anidado y legible.

Para los desarrolladores de drupal, no puedo usar devel's dsm (), ya que estoy trabajando con formularios de varios pasos # ahah / # ajax, y solo puedo enviar las matrices al registro de errores, no a la pantalla.

Ejemplo visual:

Mal:

array ( 'form_wrapper' => array ( '#tree' => true, '#type' => 'fieldset', '#prefix' => '', '#suffix' => '', '#value' => '', 'name' => array ( '#type' => 'textfield', '#title' => NULL, '#size' => 60, '#maxlength' => 60, '#required' => false, '#description' => NULL, '#attributes' => array ( 'placeholder' => 'Email', ), '#post' => array ( 'form_wrapper' => array ( 'name' => '', 'pass' => '', ),
...

Bueno:

array ( 
'form_wrapper' => array ( 
    '#tree' => true, 
    '#type' => 'fieldset', 
    '#prefix' => '<div>', 
    '#suffix' => '</div>', 
    '#value' => '', 
    'name' => array ( 
        '#type' => 'textfield', 
        '#title' => NULL, 
        '#size' => 60, 
        '#maxlength' => 60, 
        '#required' => false, 
        '#description' => NULL, 
        '#attributes' => array ( 
            'placeholder' => 'Email', 
        ), 

Editar : Lo siento, por "no mostrar en la pantalla", quise decir a través de los mensajes del sistema de drupal donde es posible generar matrices en un formato anidado y en el que se puede hacer clic (usando el módulo devel.module).


Answers

Cosas simples:

Usando print_r , var_dump o var_export deberían hacerlo bastante bien si miras el resultado en el modo view-source no en modo HTML o como dijo @Joel Larson si envuelves todo en una etiqueta <pre> .

print_r es mejor para la legibilidad, pero no imprime valores nulos / falsos.

var_dump es mejor para verificar tipos de valores y longitudes y valores nulos / falsos.

var_export es similar a var_dump pero se puede usar para obtener la cadena objeto de dumping.

El formato devuelto por cualquiera de estos está sangrado correctamente en el código fuente y var_export se puede utilizar para el registro, ya que se puede utilizar para devolver la cadena volcada.

Cosas avanzadas:

Utilice el plugin xdebug para PHP, imprime var_dump s como cadenas con formato HTML no como formato de volcado sin formato y también le permite proporcionar una función personalizada que quiera usar para formatear.


Debería poder usar un var_dump () dentro de una etiqueta previa. De lo contrario, podrías buscar usando una biblioteca como dump_r.php: https://github.com/leeoniya/dump_r.php

Mi solución es incorrecta OP estaba buscando una solución formateada con espacios para almacenar en un archivo de registro.

Una solución podría ser utilizar el almacenamiento en búfer de salida con var_dump, luego str_replace () todas las pestañas con espacios para formatearlo en el archivo de registro.


Esto te ayudara

echo '<pre>';

$output = print_r($array,1);

echo '</pre>';

EDITAR

utilizando echo '<pre>'; es inútil, pero var_export($var); hará lo que estás esperando.


El módulo Devel de Drupal tiene otras funciones útiles, incluidas las que pueden imprimir matrices formateadas y objetos para registrar archivos. Ver la guía en http://ratatosk.net/drupal/tutorials/debugging-drupal.html

dd ()

Registra cualquier variable en un archivo llamado "drupal_debug.txt" en el directorio temporal del sitio. Todos los resultados de esta función se anexan al archivo de registro, lo que facilita ver cómo cambia el contenido de una variable a medida que modifica el código.

Si está utilizando Mac OS X, puede usar la Consola de registro para supervisar el contenido del archivo de registro.

Si está utilizando una versión de Linux, puede utilizar el comando "tail -f drupal_debug.txt" para ver los datos que se registran en el archivo.


Si necesita registrar un error en el registro de errores de Apache, puede intentar esto:

error_log( print_r($multidimensionalarray, TRUE) );

Lo uso para obtener claves y sus valores $ qw = mysqli_query ($ connection, $ query);

while ( $ou = mysqli_fetch_array($qw) )
{
    foreach ($ou as $key => $value) 
    {
            echo $key." - ".$value."";
    }
    echo "<br/>";
}




php drupal