【问题标题】:How to echo the cURL result in PHP?如何在 PHP 中回显 cURL 结果?
【发布时间】:2014-11-13 13:27:17
【问题描述】:

这是一个网址→https://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=snoopy&rsz=1

这是我的 php 代码

<?php
    $url = "https://ajax.googleapis.com/ajax/services/search/images?"."v=1.0&q=snoopy";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $body = curl_exec($ch);
    curl_close($ch);

    $json = json_decode($body);
?>

我想从其结果中回显所有图像网址
(例如:http://img2.wikia.nocookie.net/__cb20110331075248/peanuts/images/6/62/Snoopy.gif

但我不知道如何回应它们。
希望有人能帮助我,谢谢!

【问题讨论】:

  • 如果链接作为响应出现,那么就回显$body :-?

标签: php json curl


【解决方案1】:

可能是这样的:

<?php
    $url = "https://ajax.googleapis.com/ajax/services/search/images?" .
   "v=1.0&q=barack%20obama&userip=INSERT-USER-IP";

   // sendRequest
   // note how referer is set manually
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_REFERER, 'http://example.com');
   $body = curl_exec($ch);
   curl_close($ch);

   // now, process the JSON string
    $pics = json_decode($body);
    $ret='';
    if($pics){
       foreach($pics->responseData->results as $pic)
          $ret .= $pic->url.'<br>';
    }
    echo $ret;
?>

【讨论】:

  • Fatal error: Cannot use object of type stdClass as array on line ... 这是我使用你的代码后得到的 ;)
  • 为什么是-1?我不知道 api 给了你什么。
  • 如果您实际访问 OP 提供的 URL,您会这样做;)
  • 仅供参考:{"responseData": {"results":[{"GsearchResultClass":"GimageSearch","width":"608","height":"766"...
  • 好多了 :) 很抱歉这么痛苦,但我真的很喜欢 PHP,如果它做得对 :)
【解决方案2】:

为了回显确切的结果,只需使用:

echo $body; //echoes json string

如果您想回显确切的链接,请像这样回显:

echo $json->responseData->results[0]->url; //echoes http://img2.wikia.nocookie.net/__cb20110331075248/peanuts/images/6/62/Snoopy.gif

或者您可以foreach() 两次(或一次...)然后直接echo $res-&gt;url :) 您的选择!

【讨论】:

  • 我用正确的格式更新了我的答案以输出该 URL。现在请看一下 :) 并告诉我您是否需要更多信息 ;)
  • 对不起。当我回显 $body 时,什么都没有发生。我也试试这个代码“echo $json->responseData->results[0]->url;”但发生错误“尝试获取非对象的属性”
  • 在您的情况下,$body 应该包含 json 字符串。尝试var_dump() 它并告诉我它的输出;)
  • 这可能是因为你的 $body 不包含那个确切的 json 字符串......它可能会有所不同......只需 var_dump() 它然后告诉我你得到了什么;)
  • 你忘记了 CURLOPT_REFERER 看看我的答案我已经编辑了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-17
  • 1970-01-01
  • 1970-01-01
  • 2016-05-28
  • 2013-01-10
相关资源
最近更新 更多