【问题标题】:How to see full content of long strings with var_dump() in PHP如何在 PHP 中使用 var_dump() 查看长字符串的全部内容
【发布时间】:2016-03-24 09:42:51
【问题描述】:

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

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

【问题讨论】:

  • 听起来你正在使用 xdebug。如果是,请确认,我可以回答这个问题。
  • 我如何知道我是否在使用它?如果重要的话,我在 localhost 和 wamp 中
  • phpinfo(); 添加到脚本并在结果中搜索“xdebug”。
  • 是的,它有 xdebug 2.2.5
  • echo var_export($array, true)呢(然后看源码因为html标签)?

标签: php arrays var-dump


【解决方案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');

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

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

【讨论】:

  • 也可以使用相同的配置设置名称放入 php.ini 文件中,例如xdebug.var_display_max_depth=-1 有效,但仅推荐用于本地开发网站
  • @ThisGuyHasTwoThumbs 好点。也就是说,xdebug 根本不应该在生产中使用。这是一个性能杀手。
  • @EdCottrell 是的,^^ 应该只在本地,并且在推动时开发 :)
  • 请注意,在 PHP 7.1 上,第二个参数应该是字符串,而不是整数。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-22
      相关资源
      最近更新 更多