How do I properly use print_r or var_dump?

Michael Corvis picture Michael Corvis · Feb 7, 2013 · Viewed 29.5k times · Source

I use the following snippet quite often when I am debugging:

echo "<pre>" . var_dump($var) . "</pre>";

And I find I usually get a nice readable output. But sometimes I just don't. I'm particularly vexed at the moment by this example:

<?php

$username='xxxxxx';
$password='xxxxxx';

$data_url='http://docs.tms.tribune.com/tech/tmsdatadirect/schedulesdirect/tvDataDelivery.wsdl';
$start=gmdate("Y-m-d\TH:i:s\Z",time());
$stop =gmdate("Y-m-d\TH:i:s\Z",time()+3600*24);

$client = new SoapClient($data_url, array('exceptions' => 0,
                                          'user_agent' => "php/".$_SERVER[SCRIPT_NAME],
                                          'login'      => strtolower($username),
                                          'password'   => $password));
$data = $client->download($start,$stop);

print_r($data);

?>

I don't want to reveal my credentials of course, but I am told print_r in this case will do the same as my usual snippet when in fact neither print_r nor my snippet produce anything other than runon data with no formatting at all. How can I make it pretty?!

Answer

rohitarora picture rohitarora · Feb 7, 2013

var_dump always show you array in formatted data but too much extra stuff

var_dump($data);

but if you want formatted data here you need to use <pre> tags

echo '<pre>';
print_r($data);
echo '</pre>';