2015-12-17 10 views
17

Ho un array con alcune stringhe comeCome per vedere il contenuto completo di stringhe lunghe con var_dump() in PHP

$array = array("string1","string2","string3"); 

Ma quelle corde sono molto lunghi, con una lunghezza di 2000 + volte. Così, quando lo faccio

echo "<pre>"; 
var_dump($array); 
echo "</pre>"; 

mi Essa mostra qualcosa di simile

string 'zzzzzzzzzzzzzzzzz '... (length = 994) 
string 'yyyyyyyyyyyyyyyyy '... (length = 1287) 
string 'xxxxxxxxxxxxxxxxx '... (length = 1718) 

Al posto della stringa completa. Come posso vedere l'intero contenuto del mio array? E per coloro che vi chiederà, contiene tag HTML, quindi è per questo che non scrivo echo $array[string];

+0

Sembra che tu stia usando xdebug. Se è così, per favore conferma, e io posso rispondere a questa domanda. –

+0

Come posso sapere se lo sto usando? Sono in localhost con wamp se è importante – Carlos2W

+0

Aggiungi 'phpinfo();' a uno script e cerca i risultati per "xdebug". –

risposta

23

Si utilizza xdebug, che sovraccarica il valore predefinito var_dump() per fornire un output più grazioso e configurabile. Per impostazione predefinita, limita anche la quantità di informazioni visualizzate in una volta. Per ottenere più risultati, è necessario modificare alcune impostazioni.

Aggiungi questo alla parte superiore del vostro script:

ini_set("xdebug.var_display_max_children", -1); 
ini_set("xdebug.var_display_max_data", -1); 
ini_set("xdebug.var_display_max_depth", -1); 

Da the docs:

xdebug.var_display_max_children

Tipo: intero, Valore predefinito: 128

Controlla la quantità di array figli e le proprietà dell'oggetto vengono visualizzate quando le variabili vengono visualizzate con xdebug_var_dump(), xdebug.show_local_vars o attraverso Function Traces.

Per disabilitare qualsiasi limitazione, utilizzare -1 come valore.

Questa impostazione non ha alcuna influenza sul numero di figli che viene inviato al client tramite la funzione di debug remoto.

xdebug.var_display_max_data

Tipo: intero, Valore predefinito: 512

controlla la lunghezza massima della stringa che viene visualizzata quando le variabili sono visualizzati con xdebug_var_dump(), o tramite xdebug.show_local_vars Tracce di funzione.

Per disabilitare qualsiasi limitazione, utilizzare -1 come valore.

Questa impostazione non ha alcuna influenza sul numero di figli che viene inviato al client tramite la funzione di debug remoto.

xdebug.var_display_max_depth

Tipo: intero, Valore predefinito: 3

Controlli quanti livelli nidificati di elementi di matrice e le proprietà degli oggetti sono quando le variabili sono visualizzati con xdebug_var_dump(), xdebug.show_local_vars o attraverso Tracce funzione.

Il valore massimo che è possibile selezionare è 1023. È inoltre possibile utilizzare -1 come valore per selezionare questo numero massimo.

Questa impostazione non ha alcuna influenza sul numero di figli che viene inviato al client tramite la funzione di debug remoto.

+0

Grazie, aggiungo questo nella parte superiore e rimuove i limiti! – Carlos2W

+1

può anche essere inserito nel file php.ini utilizzando gli stessi nomi delle impostazioni di configurazione, ad es. 'xdebug.var_display_max_depth = -1' funziona, ma consiglia solo per siti di dev locali – ThisGuyHasTwoThumbs

+1

@ThisGuyHasTwoThumbs Buon punto. Detto questo, xdebug non dovrebbe essere usato affatto in produzione; è un killer delle prestazioni. –

-1

qualcosa di simile sarebbe anche visualizzare tutti i tag html nei valori:

foreach($array as $key=>$value) { 
    echo($key.':<br /><pre>'.htmlspecialchars($value).'<pre><hr>'); 
} 
1

A volte, usare var_dump potrebbe essere molto noioso quando si lavora con stringhe lunghe. Invece di inviare il risultato sul browser, è possibile utilizzare il terminale. Un'altra soluzione è di produrre il risultato su un file di testo usando file_put_contents o simile. Quindi apri il file e controlla il risultato.