PHP: Migliorare l'output della funzione print_r

Migliorare l’output della funzione print_r

In PHP per visualizzare a schermo il contenuto di un’array o di un oggetto non è necessario creare un loop utilizzando un for, foreach o while ma basta utilizzare una comoda funzione chiamata print_r.

Ad esempio se si vuole stampare il contenuto di un’oggetto basta scrivere

print_r($object);

e l’echo risultante sarà del tipo

stdClass Object ( [ID] => 1 [post_author] => 1 [post_date] => 2000-01-01 00:00:01 [post_content] => This is the content of the message. [post_title] => Message Title [post_excerpt] => This is the excerpt of the message. [post_status] => publish [post_name] => message [post_parent] => 0 [menu_order] => 0 [post_type] => post )

Con una sola riga di codice abbiamo ottentuto un output dettagliato contenente tutti i dati contenuti all’interno dell’object.

Come potete notare, anche se l’oggetto preso in esame è composto da pochi e basilari dati, l’output risultante è già abbastanza confuso e di difficile lettura, pensate se l’oggetto o l’array che dovreste stampare fosse composto da centinaia di dati e ci fossero anche delle gerarchie al suo interno, trovare le informazioni ricercate diventerebbe un’impresa particolarmente ardua.

Per risolvere a questo inconveniente ci viene incontro un tag HTML, il <pre>.

Nel linguaggio HTML gli a capo contenuti nei testi vengono ignorati (per andare su una nuova linea bisogna utilizzare il tag apposito <br>), quindi la stampa risultante dalla nostra print_r() viene visualizzata tutta sulla stessa linea.

Racchiudendo il nostro ouptut all’interno della tag <pre> (che sta per “pre-formattato”) in questo modo

<pre>
print_r($object);
</pre>

gli a capo contenuti nell’output verranno letti correttamente, ottenendo quindi un risultato di questo tipo

stdClass Object
(
    [ID] => 1
    [post_author] => 1
    [post_date] => 2001-01-01 00:00:01
    [post_content] => This is the content of the message.
    [post_title] => Message Title
    [post_excerpt] => This is the excerpt of the message.
    [post_status] => publish
    [post_name] => message
    [post_parent] => 0
    [menu_order] => 0
    [post_type] => post
)

Ora l’output è decisamente più chiaro e leggibile: ogni dato è sulla sua riga ed inoltre il risultato è indentato in maniera gerarchica, ottimo!

Come per la funzione print_r() lo stesso risultato si può ottenere anche per le funzioni similari come la funzione var_dump() o la funzione var_export().

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *