【问题标题】:How can I increase the json_encode depth limit [duplicate]如何增加 json_encode 深度限制 [重复]
【发布时间】:2021-04-19 22:38:14
【问题描述】:

如何在 PHP 中将 json_encode 函数的最大深度限制设置为无限制?

我的问题是;

$array = 
[
    [
       [
          ['hello'],
       ],
    ],
];

当我多维添加超过 3 个数组时,Json_encode 函数返回 false。我想取消这个限制。我该怎么做?

谢谢。

【问题讨论】:

  • this code 是否适用于您自己的 PHP 安装?因为它在正常的 PHP 安装中运行良好
  • echo json_last_error_msg(); 显示什么?
  • json_encode() 有第三个参数$depth 指定深度限制。默认为 512。
  • @Barmar "UTF-8 格式错误,可能编码不正确"
  • 这与深度无关,表示字符串中有无效字符。

标签: php json


【解决方案1】:

json_encode 函数接受 depth 参数:https://www.php.net/manual/en/function.json-encode

<?php
$array = 
[
    [
       [
          ['hello'],
       ],
    ],
];

$text = json_encode($array, 8);
?>

【讨论】:

  • 由于默认值是 512,这不能解决问题。而且错误信息与深度无关。
  • @Barmar 这回答了所提出的问题。我在 cmets 中看到了讨论,问题应该相应更新。
  • 如果他的数组嵌套超过 512 层,它只会回答被问到的问题。
  • 这是个好主意。然而,这对我来说并不明显。 OP 说“我可以在我的本地主机上运行这个脚本。但我不能在主机上使用。”所以这可能是对主机的限制。
猜你喜欢
  • 2023-02-22
  • 2014-01-29
  • 2013-04-15
  • 2016-02-18
  • 2020-03-04
  • 2011-02-04
  • 2020-08-05
  • 2016-04-17
  • 1970-01-01
相关资源
最近更新 更多