【问题标题】:Parse out results from API using PHP使用 PHP 从 API 解析结果
【发布时间】:2020-12-11 17:52:57
【问题描述】:

有人可以帮忙解决以下问题吗?我正在尝试从https://www.amee.com/api#/documentation 的 API 中解析出一些结果,我不完全是这方面的专家,所以需要一些帮助。

我可以使用 var_dump 检索所有看起来像 json 的数据,但是当尝试在 html 中解析它时出现以下错误

Notice
: Trying to get property 'Company' of non-object in
C:\xampp\htdocs\smbprotool\api\funcions.php
on line
90


Warning
: Invalid argument supplied for foreach() in
C:\xampp\htdocs\smbprotool\api\functions.php
on line
90

这是我的functions.php文件中的代码

function get_company_detail_amee() {

  $url = 'https://www.amee.com//api/companies?min_annual_sales_local=1000000';

  $username = '******';
  $password = '******';

  $ch = curl_init($url);

  curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  $response = curl_exec($ch);
  $array = json_decode($response, true);

  foreach($array->Company as $p){

    echo "<h6> ". $p->amee_company_id ."</h6>";

  }

}

感谢任何帮助

【问题讨论】:

  • $response 包含什么(类似于echo $response;
  • json_decode()中删除true..
  • @NigelRen - 它的 CURL 请求
  • @LawrenceCherone - 我删除了它并收到“通知:未定义属性:stdClass::$Company”以及我最初声明的每个无效参数
  • 请做print_r($response); 它不是你想的那样,显然当我点击那个网址时它显示{"errors":["API authentication failed: no credentials provided"]}.. 但如果你的信用是他们是什么或错了.. 那么你不会得到 {Company:..} 回来,你应该从 api 实现处理错误

标签: php json api curl


【解决方案1】:

改变:

$array = json_decode($response, true);
foreach($array->Company as $p){

$array = json_decode($response);
foreach($array->companies as $p){

【讨论】:

  • 非常感谢,看起来这样有效,所以看起来我有公司而不是公司,并且解码设置为 true,这是不应该的。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2015-06-10
  • 2011-10-11
相关资源
最近更新 更多