【问题标题】:json_decode returning nothing. var_dump not working eitherjson_decode 什么都不返回。 var_dump 也不起作用
【发布时间】:2018-08-29 01:37:28
【问题描述】:

好的,这听起来像是一个新手错误,但我发誓不是,我每天都使用 PHP,从来没有遇到过这个问题,但是当尝试转换一个完全有效的 JSON 文档时

[
    {
        "title" : "Introduction",
        "location" : "/class/html/",
        "des" : "An introduction to HTML!"
    }
]

使用以下 PHP 代码

$json = file_get_contents("assets/pages/html/pages.json");
$decoded = json_decode($json,true);
var_dump($decoded);

什么也没发生,当我尝试运行它时出现 500 错误,然后当我进入 Windows Edge 调试器时它只是空白,我做错了什么吗?我已经在互联网上搜索了一整天,但没有任何效果

PHP V7.1

编辑:

我多次检查文件位置,它工作正常,即使直接输入字符串它仍然不起作用,当我检查error_log时,我得到以下错误 PHP Fatal error: Uncaught Error: Call to undefined function json_decode()

这是我的 PHP.INI

display_errors = On
max_execution_time = 30
max_input_time = 60
max_input_vars = 1000
memory_limit = 128M
post_max_size = 8M
session.gc_maxlifetime = 1440
session.save_path = "/var/cpanel/php/sessions/ea-php70"
upload_max_filesize = 32M
zlib.output_compression = Off

【问题讨论】:

  • 这可能来自file_get_contents,5XX 状态码是服务器错误。我的第一个猜测是该文件在该位置不存在,以确认使用文字来查看这个小提琴:3v4l.org/JJaED
  • 将 JSON 硬编码到 $json 变量中,然后使用 json_decode() 函数是否有效?这将表明您的文件不在该路径中
  • 确保关于相对路径.. 尝试使用整个路径.. 关于 500 错误,请尝试 error_all
  • 如果收到 500 错误,请检查服务器上的 PHP 错误日志。

标签: php html json debugging


【解决方案1】:

我设法修复了它,经过几个小时的折腾,我使用 JSON_Services 修复了它,

function json_decode($str) {
    $json = new Services_JSON();
    $str = $json->decode($str);
    $str = (array) $str;
    return $str;
}

【讨论】:

  • 这看起来像一些第三方纯 PHP 库。 json_decode() 是 PHP/5.2.0 以来的原生扩展,您也可以启用它或要求您的托管服务提供商为您做(这是一个非常基本的功能)。
  • 我做到了,他们不知道哪里出了问题,所以我做了这个功能来弥补基础功能的不足
猜你喜欢
  • 1970-01-01
  • 2016-05-31
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2012-12-24
  • 2013-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多