Instagram标签API函数


instagram tag api function

有人能帮我修复这个代码吗?结果只出现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>";
            }
        }
}

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

在你的代码中,你只得到一个图像,因为你在循环内返回图像,所以它不执行循环内的所有记录。试试下面的代码

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;
}

您组合图像数组的方式不是连接图像。为此,请使用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循环。