【问题标题】:php json_decode not working for large stringphp json_decode 不适用于大字符串
【发布时间】:2016-12-21 08:23:28
【问题描述】:

谁能帮我解决json_decode问题,这是我的json字符串,它工作正常-

{"323":"723","317":"704","316": {"date":"28\/12\/2016"},"314":"701","315": {"area":"sdfgdfg"}}

但是如果我再添加一个键值对,那么 json_decode 函数就不起作用了。

{"336":"761","323":"723","317":"704","316": {"date":"28\/12\/2016"},"314":"701","315": {"area":"test"}}

第二个字符串不起作用,但是在我的本地系统中,两个字符串都工作正常,我需要检查哪些 php 配置参数?我增加了内存限制最大执行时间最大帖子大小还有什么需要检查的,请帮忙。

更新这是我的代码 -

$arrProducts = array(
        array(
            "product_id" => $_REQUEST['product_id'],
            "qty" => $_REQUEST['quantity'],
            "options" => json_decode($_REQUEST['product_options'], true),
            "sku" => $_REQUEST['sku'],
            "store_id" => 1
        )
    );
print_r($arrProducts);

它为第二个字符串打印空白数组。

我检查了错误日志,它显示 - PHP Warning: Unknown: POST Content-Length of 274 bytes 超出了 Unknown on line 0 中 256 字节的限制

【问题讨论】:

  • 能否请您也提供相关代码?我猜它与 json_decode 本身无关。
  • 使用json_last_error_msg()检查错误
  • 你的第二个字符串解码没有任何问题:eval.in/701965
  • 无法复制任何问题 - 以上字符串上的json_decode 工作正常。
  • 如果这仅在您的实时服务器中不起作用,请尝试在您的实时服务器中检查您的 apache 错误日志

标签: php


【解决方案1】:

这里的问题具有误导性, 您面临的问题不是 json_decode 无法解码,而是 POST 最大大小超过

您可能会在您的php.ini 文件中找到类似以下内容

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 256

把上面改成

post_max_size = 8M

即,8M 作为帖子大小限制

如果您使用的是 apache,您可能还需要更改 .htaccess。 这是#post_max_size的参考

【讨论】:

  • 实际上我无法调试它,谢谢,它现在可以工作了。
猜你喜欢
  • 2012-12-15
  • 2013-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-07
  • 2021-02-10
  • 2020-04-18
相关资源
最近更新 更多