【问题标题】:Access Fantasy Premier League 2019/20 data through API [duplicate]通过 API 访问 Fantasy Premier League 2019/20 数据 [重复]
【发布时间】:2019-08-02 09:52:07
【问题描述】:

我正在尝试从 Fantasy Premier League API 中提取赛程数据。但我被困住了。我收到的是字符串数据而不是 JSON 数据。自从我使用 PHP 以来已经有一段时间了,因为这些天我更专注于 JavaScript。请指导我。

<?php
 $arrContextOptions=array(
            "ssl"=>array(
                "verify_peer"=>false,
                "verify_peer_name"=>false,
            ),
        );
        $url = "https://fantasy.premierleague.com/api/fixtures/?event=1";
        $response = file_get_contents($url, false, stream_context_create($arrContextOptions));
        // echo $response;

         $events  = json_encode($response, true);
         print_r($events);
         ?>

变量 $events 给了我字符串而不是数组。这是因为 API 以字符串格式提供数据,或者我做错了什么。

任何帮助将不胜感激。 谢谢你

【问题讨论】:

  • 不要关闭 SSL 验证。这是一个很大的安全问题。
  • 我正在使用具有各种防火墙的官方笔记本电脑。这就是我使用它的原因。
  • 在我看来,防火墙与 SSL 证书无关。只需下载最新的证书并使用它。

标签: php arrays json string api


【解决方案1】:

我相信你混淆了json-encodejson-decode

json-encode,您使用的函数将对象转换为字符串 - 因此将$events 作为字符串是预期的行为。

另一方面,json-decode 获取字符串并将其转换为对象 - 所以你应该将其用作:

$events  = json_decode($response, true);

【讨论】:

    猜你喜欢
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 2018-12-18
    相关资源
    最近更新 更多