【问题标题】:instagram tag api functionInstagram标签API功能
【发布时间】:2014-08-11 02:36:33
【问题描述】:

有人可以帮我修复此代码吗?结果只出现1张图片..

function get_instagram($q,$client_id) {
        $api = "https://api.instagram.com/v1/tags/".$q."/media/recent?client_id=".$client_id;
        $response = get_curl($api);
        $images = array();
        if($response){
            foreach(json_decode($response)->data as $item){     
                $src = $item->images->standard_resolution->url;
                $thumb = $item->images->thumbnail->url;
                $url = $item->link;

                $images[] = array(
                "src" => htmlspecialchars($src),
                "thumb" => htmlspecialchars($thumb),
                "url" => htmlspecialchars($url)
                );
                return "<a href='".$url."' target='_blank'><img src='".$thumb."' border='0'/></a>";
            }
        }
}

我想要实现的是让所有结果出现在一个页面中

【问题讨论】:

    标签: php api instagram


    【解决方案1】:

    在您的代码中,您只会获得一张图像,因为您在循环内返回图像,因此它不会执行循环内的所有记录。试试下面的代码

    function get_instagram($q,$client_id) {
        $api = "https://api.instagram.com/v1/tags/".$q."/media/recent?client_id=".$client_id;
        $response = get_curl($api);
        $images = array();
        $returnval = '';
        if($response){
            foreach(json_decode($response)->data as $item){     
                $src = $item->images->standard_resolution->url;
                $thumb = $item->images->thumbnail->url;
                $url = $item->link;
    
                $images[] = array(
                "src" => htmlspecialchars($src),
                "thumb" => htmlspecialchars($thumb),
                "url" => htmlspecialchars($url)
                );
                $returnval .= "<a href='".$url."' target='_blank'><img src='".$thumb."' border='0'/></a>";
            }
        }
        return $returnval;
    }
    

    【讨论】:

      【解决方案2】:

      您组合图像数组的方式不是连接图像。为此,请使用 array_merge() 函数。结果如下:

      function get_instagram($q,$client_id) {
      $api = "https://api.instagram.com/v1/tags/".$q."/media/recent?client_id=".$client_id;
      $response = get_curl($api);
      $images = array();
      if($response){
          foreach(json_decode($response)->data as $item){     
              $src = $item->images->standard_resolution->url;
              $thumb = $item->images->thumbnail->url;
              $url = $item->link;
      
              array_merge($images, array(
                  "src" => htmlspecialchars($src),
                  "thumb" => htmlspecialchars($thumb),
                  "url" => htmlspecialchars($url)
              ));
          }
          foreach ($images as $image) {
              echo "<a href='".$image->$url."' target='_blank'><img src='".$image->$thumb."' border='0'/></a>";
          }
      }
      

      另外,return 语句只会执行一次。为了打印“所有”图像,对 $images 数组使用 foreach 循环。

      【讨论】:

      • 你好..谢谢你的帮助..但是现在,这个更改没有出现图像
      • 你检查日志了吗?也许您遇到了错误?
      猜你喜欢
      • 1970-01-01
      • 2016-05-17
      • 1970-01-01
      • 2015-12-27
      • 2014-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多