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

2022-08-30 10:12:07

我有一个数组,其中包含一些字符串,例如

$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];


答案 1

您正在使用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');

文档中

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 作为值来选择此最大数字。

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


答案 2

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