Facendo PHP var_dump() i valori vengono visualizzati in una riga per ogni valore

Quando ho echo var_dump (variabile$_), ho uno lungo, il confezionamento linea con tutti varable e valori come

["kt_login_user"]=>  string(8) "teacher1" ["kt_login_id"]=>  string(3) "973" ["kt_campusID"]=>  string(4) "9088" ["kt_positionID"]=>  string(1) "5" 

C’è un modo per rendere ogni valore d’indicazione sulla propria riga per facilità di lettura? Qualcosa di simile a questo:

["kt_login_user"]=>  string(8) "teacher1" 
["kt_login_id"]=>  string(3) "973" 
["kt_campusID"]=>  string(4) "9088" 
["kt_positionID"]=>  string(1) "5"
  • Hai provato a mettere un <pre> tag intorno alla vostra var_dump()?
InformationsquelleAutor user1320318 | 2012-04-12



14 Replies
  1. 83

    Sì, prova avvolgendolo con <pre>, ad esempio:

    echo '<pre>' , var_dump($variable) , '</pre>';
    • Pensavamo di essere gli unici che hanno fatto questo!
    • Io tendo a preferire print_r (), anche se per le matrici
    • Grazie, ma penso che forse c’è un altro modo per farlo, invece di usare <pre> tag di ogni tempo
    • si può sempre fare una vista di origine (ctrl + U in molti browser)
    • Se c’è un altro modo? certo, si può utilizzare nl2br se si vuole, ma perché dovrebbe essere meglio?
    • presentato nel dare un’piace questa risposta)
    • 32 upvotes per una risposta sbagliata… var_dump non restituisce nulla, uscite direttamente. Il codice di cui sopra, per un $variable di 42 anni, in uscita questo: int(42) <pre></pre> (vedere per se stessi).
    • la risposta è stata modificata.
    • Funziona alla grande per me! Grazie

  2. 33

    Di solito ho una bella funzione per gestire l’uscita di un array, solo per abbastanza un po ‘ durante il debug.

    function pr($data)
    {
        echo "<pre>";
        print_r($data); //or var_dump($data);
        echo "</pre>";
    }

    Quindi basta chiamare

    pr($array);

    O se si dispone di un editor che consente di risparmiare i frammenti in modo da potervi accedere più rapidamente, invece di creare una funzione per ogni progetto è di costruire o di ogni pagina che richiede solo una prova veloce.

    Per print_r:

    echo "<pre>", print_r($data, 1), "</pre>";

    Per var_dump():

    echo "<pre>", var_dump($data), "</pre>";

    Io uso il sopra con PHP Tempesta. Ho impostato come pr scheda di comando.

    • Suggerimento: codice pr() può essere ulteriormente semplificata per questo: echo '<pre>' . print_r($data, true) . '</pre>';
  3. 14

    Ho anche studiato questo problema e non ho trovato la risposta giusta. Questo non funziona per me:

    echo '<pre>' . var_dump($variable) . '</pre>';

    Non fornisce una bella visualizzazione della matrice per me, con interruzioni di riga (sto usando Firefox 31.3.0)

    Tuttavia, dopo alcune sperimentazioni, questo ha risolto il problema (si noti che il php è chiuso in un primo momento):

    ... ?> <pre><?php echo var_dump($variable) ?></pre> <?php ...

    Questo risolve il problema e mostra una piacevole, di facile lettura array per me, sul mio browser. Si vede come i tag non sono avvolto in PHP; solo l’eco var_dump parte.

    • Questa era l’unica soluzione che ha funzionato per me.
    • Suggerimento: la prossima volta, leggere il manuale. var_dump non restituisce mai scaricato valore, questo è il motivo per il secondo esempio ha funzionato… ma ancora non hai bisogno di fare echo var_dump..… questo funziona anche: echo '<pre>'; var_dump($variable); echo '</pre>'; o questo: <pre><?php var_dump($variable); ?></pre>
  4. 12

    Se hai XDebug installato, è possibile utilizzare è var_dump sostituzione. Citazione:

    Xdebug sostituisce PHP var_dump() funzione per la visualizzazione di variabili. Xdebug versione include diversi colori per i diversi tipi e pone dei limiti sulla quantità di elementi dell’array/proprietà di un oggetto, la profondità massima e la lunghezza di stringa. Ci sono un paio di altre funzioni trattare con la variabile display.

    È probabile che si desidera modificare alcune delle impostazioni seguenti:

    C’è un certo numero di impostazioni che controllano l’uscita di Xdebug modificato var_dump() funzione: xdebug.var_display_max_children, xdebug.var_display_max_data e xdebug.var_display_max_depth. L’effetto di queste tre impostazioni è meglio illustrato con un esempio. Lo script riportato di seguito viene eseguito quattro volte, ogni volta con diverse impostazioni. È possibile utilizzare le schede per vedere la differenza.

    Ma tenere a mente che XDebug modo rallentare in modo significativo il codice, anche quando è appena caricato. Non è consigliabile eseguire sul server di produzione. Ma hey, non var_dumping sui server di produzione, comunque, e tu?

    • ha funzionato, Nel nuovo aggiornamento è stato spento. ma è solo una limitata profondità di matrice ora.
    • href=”http://stackoverflow.com/questions/9998490/how-to-get-xdebug-var-dump-to-show-full-object-array” title=”come ottenere xdebug var dump per mostrare piena oggetto array”>stackoverflow.com/questions/9998490/… 🙂
  5. 11

    var_export vi darà una bella uscita. Esempi di documenti:

    $a = array (1, 2, array ("a", "b", "c"));
    echo '<pre>' . var_export($a, true) . '</pre>';

    Di uscita:

    array (
      0 => 1,
      1 => 2,
      2 => 
      array (
        0 => 'a',
        1 => 'b',
        2 => 'c',
      ),
    )
    • Questo funziona solo quando il parametro 2 è true. Ho aggiornato la risposta per riflettere questo.
    • Infatti. Grazie.
    • Molto bello! Grazie!
    • Questo ha funzionato bene, tutti gli altri suggerimenti non ha funzionato per me. Grazie mille.
  6. 10

    Per me la risposta giusta era

    echo '<pre>' . var_export($var, true) . '</pre>';

    Dal var_dump($var) e var_export($var) non restituire una stringa, è necessario utilizzare var_export($var, true) per forza var_export per restituire il risultato come valore.

    • questo era già dato come risposta un paio di mesi fa, quindi non c’è bisogno di aggiungerlo. non rendere la pagina più utile. vota la risposta, invece.
  7. 7

    È possibile premere Ctrl+U per visualizzare il codice sorgente. La maggior parte dei Browser abbellire l’output non esiste.

    var_dump è il più brutto modo per eseguire il debug.

  8. 6

    Utilizzare il buffer di uscita: http://php.net/manual/de/function.ob-start.php

    <?php
        ob_start();
        var_dump($_SERVER) ;
        $dump = ob_get_contents();
        ob_end_clean();
    
        echo "<pre> $dump </pre>";
    ?>

    Ancora un’altra opzione sarebbe quella di utilizzare il buffer di Uscita e convertire tutti i ritorni a capo in discarica per <br> elementi, ad esempio

    ob_start();
    var_dump($_SERVER) ;
    echo nl2br(ob_get_clean());
    • Suggerimento: invece di $dump = ob_get_contents(); ob_end_clean();, si può semplicemente fare questo: $dump = ob_get_clean();
    • Invece di avvolgere in pre elementi, si potrebbe anche solo echo nl2br($dump)
  9. 1

    Amo var_export(). Se ti piace il copia/incolla in grado di codice, provare:

    echo '<pre>' . var_export($data, true) . '</pre>';

    O anche qualcosa di simile per colore di evidenziazione della sintassi:

    highlight_string("<?php\n\$data =\n" . var_export($data, true) . ";\n?>");
    • Che highlight_string trucco è uno dei modi più semplici di fare var_export leggibile, che io sappia. Merita di più upvotes!
    • Un copia incolla di questa risposta: stackoverflow.com/a/19816742/327862 Molto Zoppo!
  10. 1

    Per gli sviluppatori che necessitano di qualcosa che funziona in visualizza sorgente e il CLI, particolarmente utile in fase di debug unit test.

    echo vd([['foo'=>1, 'bar'=>2]]);
    
    function vd($in) {
      ob_start(); 
      var_dump($in);
      return "\n" . preg_replace("/=>[\r\n\s]+/", "=> ", ob_get_clean());
    }

    Rendimenti:

    array(1) {
      [0] => array(2) {
        'foo' => int(1)
        'bar' => int(2)
      }
    }
  11. 0

    Ho fatto una simile soluzione. Ho creato un frammento di sostituire il “vardump’ con questo:

    foreach ($variable as $key => $reg) {
        echo "<pre>{$key} => '{$reg}'</pre>";
    }
    var_dump($variable);die;

    Ps: mi sto ripetendo i dati con l’ultimo var_dump per ottenere il nome del file e la riga

    Così:
    Facendo PHP var_dump() i valori vengono visualizzati in una riga per ogni valore
    È diventato questo:
    Facendo PHP var_dump() i valori vengono visualizzati in una riga per ogni valore

    Fatemi sapere se questo vi aiuterà.

  12. 0

    Non volevo smettere di usare var_dump($variable);die(); e l’utilizzo di pre tag e loop sembra eccessivo per me, visto che mi sto guardando il dump in un browser, mi basta fare clic destro sulla pagina e scegliere Ispezionare (io uso Chrome). La sezione Elementi di Strumenti di sviluppo per mostrare la variabile in un formato leggibile.

  13. 0

    Personalmente mi piace la funzione di sostituzione forniti da Symfony var dumper componente

    Installare con composer require symfony/var-dumper e basta usare dump($var)

    Si prende cura di tutto il resto. Credo che ci sia anche un po ‘di JS iniettato ci consente di interagire con l’uscita un po’.

Lascia un commento