【问题标题】:Get the data from json url using php?使用 php 从 json url 获取数据?
【发布时间】:2014-07-01 18:22:17
【问题描述】:

这是一个 json api:https://jobs.github.com/positions.json?description=java&page=1 我想从这个 url 获取数据。

<?php 
$url = file_get_contents('https://jobs.github.com/positions.json?description=java&page=1');
var_dump(json_decode($url,true));   ?>

此代码返回 null 我还检查了 json 验证器中的 url:http://jsonformatter.curiousconcept.com/ json 是有效的,但我无法从这个 url 获取数据请帮助我......

【问题讨论】:

  • 您是否启用了错误报告? $url 真的是 JSON 吗?
  • 你的代码对我来说很好用!你没有安装JSON吗?当您转储 $url(实际上不是 URL,而是内容数据...)时,您会得到什么?
  • 我得到了结果兄弟 julian。我没有在我的 php.ini 中启用 php_openssl,所以我无法得到结果。谢谢你的帮助

标签: php json api url


【解决方案1】:

试试这个脚本以确定问题所在。如果没有安装 JSON 模块(参见@julian 评论),您可以尝试使用 JSON 的 PHP 实现,如下所示:http://pear.php.net/pepr/pepr-proposal-show.php?id=198

if (! extension_loaded('json')) {
    echo 'Module JSON not available!';
    exit();
}

$url = file_get_contents('https://jobs.github.com/positions.json?description=java&page=1');
$data = json_decode($url,true);

switch (json_last_error()) {
    case JSON_ERROR_NONE:
        echo ' - No errors';
    break;
    case JSON_ERROR_DEPTH:
        echo ' - Maximum stack depth exceeded';
    break;
    case JSON_ERROR_STATE_MISMATCH:
        echo ' - Underflow or the modes mismatch';
    break;
    case JSON_ERROR_CTRL_CHAR:
        echo ' - Unexpected control character found';
    break;
    case JSON_ERROR_SYNTAX:
        echo ' - Syntax error, malformed JSON';
    break;
    case JSON_ERROR_UTF8:
        echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
    break;
    default:
        echo ' - Unknown error';
    break;
}

【讨论】:

  • 谢谢凯文霍斯特。现在我得到了结果。我没有在我的 php.ini 中启用 php_openssl,所以我无法得到结果。你的代码有助于实现我的结果。耶稣保佑你
猜你喜欢
  • 2015-04-08
  • 2016-08-06
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
  • 2023-03-26
  • 2021-07-05
相关资源
最近更新 更多