如何在PHP中使用var_dump()查看长字符串的完整内容

时间:2015-12-17 19:32:40

标签: php arrays var-dump

我有一个像

这样的字符串的数组
$array = array("string1","string2","string3");

但这些字符串很长,有时长度为2000+。所以当我做的时候

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

它显示了类似

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

而不是完整的字符串。如何查看数组的全部内容?对于那些会问的人,它包含HTML标签,这就是为什么我不写echo $array[string];

3 个答案:

答案 0 :(得分:38)

您正在使用xdebug,它会重载默认的var_dump(),以便为您提供更漂亮,更可配置的输出。默认情况下,它还会限制一次显示的信息量。要获得更多输出,您应该更改一些设置。

将其添加到脚本的顶部:

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

来自the docs

  

<强> xdebug.var_display_max_children

     

类型:整数,默认值:128

     

当使用xdebug_var_dump(),xdebug.show_local_vars或通过函数跟踪显示变量时,控制数组子项的数量和对象的属性。

     

要禁用任何限制,请使用-1作为值。

     

此设置对通过远程调试功能发送给客户端的子项数没有任何影响。

     

<强> xdebug.var_display_max_data

     

类型:整数,默认值:512

     

控制使用xdebug_var_dump(),xdebug.show_local_vars或通过函数跟踪显示变量时显示的最大字符串长度。

     

要禁用任何限制,请使用-1作为值。

     

此设置对通过远程调试功能发送给客户端的子项数没有任何影响。

     

<强> xdebug.var_display_max_depth

     

类型:整数,默认值:3

     

控制使用xdebug_var_dump(),xdebug.show_local_vars或通过函数跟踪显示变量时,有多少嵌套级别的数组元素和对象属性。

     

您可以选择的最大值是1023.您还可以使用-1作为值来选择此最大数字。

     

此设置对通过远程调试功能发送给客户端的子项数没有任何影响。

答案 1 :(得分:2)

有时,使用var_dump在处理长字符串时可能会非常繁琐。 而是在浏览器上输出结果,您可以使用终端。 另一种解决方案是使用file_put_contents或类似方法在文本文件上输出结果。然后打开文件并检查结果。

答案 2 :(得分:-1)

这样的东西也会在值中显示任何html标签:

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