How to see full content of long strings with var_dump() in PHP

PhpArraysVar Dump

Php Problem Overview


I have an array with some strings like

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

But those strings are very long, with a length of 2000+ sometimes. So when I do

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

It shows me something like

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

Instead of the full string. How can I see the whole content of my array? And for those who will ask, it contains HTML tags, so that's why I don't write echo $array[string];

Php Solutions


Solution 1 - Php

You are using xdebug, which overloads the default var_dump() to give you prettier and more configurable output. By default, it also limits how much information is displayed at one time. To get more output, you should change some settings.

Add this to the top of your 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');

From the docs:

> xdebug.var_display_max_children > > Type: integer, Default value: 128 > > Controls the amount of array children and object's properties are shown when variables are displayed with either xdebug_var_dump(), xdebug.show_local_vars or through Function Traces. > > To disable any limitation, use -1 as value. > > This setting does not have any influence on the number of children that is send to the client through the Remote Debugging feature. > > xdebug.var_display_max_data > > Type: integer, Default value: 512 > > Controls the maximum string length that is shown when variables are displayed with either xdebug_var_dump(), xdebug.show_local_vars or through Function Traces. > > To disable any limitation, use -1 as value. > > This setting does not have any influence on the number of children that is send to the client through the Remote Debugging feature. > > xdebug.var_display_max_depth > > Type: integer, Default value: 3 > > Controls how many nested levels of array elements and object properties are when variables are displayed with either xdebug_var_dump(), xdebug.show_local_vars or through Function Traces. > > The maximum value you can select is 1023. You can also use -1 as value to select this maximum number. > > This setting does not have any influence on the number of children that is send to the client through the Remote Debugging feature.

Solution 2 - Php

Sometimes, using var_dump might be very tedious when working with long strings. Instead outputing the result on the browser, you can use the terminal. Another solution is to output the result on a text file using file_put_contents or similar. Then open the file and check the result.

Solution 3 - Php

Something like this would also display any html tags in the values:

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionCarlos2WView Question on Stackoverflow
Solution 1 - PhpelixenideView Answer on Stackoverflow
Solution 2 - PhpVesakaView Answer on Stackoverflow
Solution 3 - PhpSantyView Answer on Stackoverflow