在php中获取相同大小的图像

时间:2018-10-22 04:57:46

标签: javascript php instagram-api

我创建了一个用于获取Instagram标签图像作为输出的应用程序。我可以加载图像。但是我需要获得相同尺寸的图像。有人帮我解决这个问题吗?

这是代码...

  <?php
    function scrape_insta_hash($tag) {
        $insta_source = 
    file_get_contents('https://www.instagram.com/explore/tags/'.$tag.'/'); 
        $shards = explode('window._sharedData = ', $insta_source);
        $insta_json = explode(';</script>', $shards[1]); 
        $insta_array = json_decode($insta_json[0], TRUE);
        return $insta_array; 
    }

        $tag = 'savesripada'; 
        $results_array = scrape_insta_hash($tag);
        $limit = 15; 
        $image_array= array(); 
        for ($i=0; $i < $limit; $i++) { 

            $latest_array = $results_array['entry_data']['TagPage'][0]['graphql']['hashtag']['edge_hashtag_to_media']['edges'][$i]['node'];
            $image_data  = '<img src="'.$latest_array['thumbnail_src'].'">'; 
            array_push($image_array, $image_data);
        }


        foreach ($image_array as $image) {
            echo $image;
    }
      ?>

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

    <?php
    $tag = 'savesripada'; 
    $results_array = scrape_insta_hash($tag);
    $image_array = array_filter(
        $results_array['entry_data']['TagPage'][0]['graphql']['hashtag']['edge_hashtag_to_media']['edges'],
         function($item) {
            $size = $item['node']['dimensions']; // example : [height: 810, width: 1080]
            return $size['height'] === '130' && $size['width'] === '150'; // Adjust your condition if you want another metrix
        });
    var_dump($image_array); // Will print image with exactly 150*130

在这里,我使用array_filter搜索和拾取仅高度== 130和宽度== 150的图像。

答案 1 :(得分:0)

以下代码将图像调整为所需大小。

<?php
$height = 150;
$width = 150;
    function scrape_insta_hash($tag) {
            $insta_source =
        file_get_contents('https://www.instagram.com/explore/tags/'.$tag.'/');
            $shards = explode('window._sharedData = ', $insta_source);
            $insta_json = explode(';</script>', $shards[1]);
            $insta_array = json_decode($insta_json[0], TRUE);
            return $insta_array;
        }

            $tag = 'savesripada';
            $results_array = scrape_insta_hash($tag);
            $limit = 15;
            $image_array= array();
            for ($i=0; $i < $limit; $i++) {

                $latest_array = $results_array['entry_data']['TagPage'][0]['graphql']['hashtag']['edge_hashtag_to_media']['edges'][$i]['node'];
                $image_data  = '<img height="'.$height.'" width="'.$width.'" src="'.$latest_array['thumbnail_src'].'">';
                array_push($image_array, $image_data);
            }


            foreach ($image_array as $image) {
                echo $image;
            }
?>