猿问

如何使用file_get_contents作为数组获取图像

我在将图像获取为数组时遇到以下问题。在这段代码中,我试图检查是否Test 1存在要搜索的图像-如果是,则显示,如果不显示,然后尝试,仅Test 2此而已。当前的代码可以做到,但是速度非常慢。


这if (sizeof($matches[1]) > 3) {是因为3有时它包含爬网网站上的广告,所以这是我安全的跳过方法。


我的问题是我如何才能加快下面的代码的if (sizeof($matches[1]) > 3) {速度呢?我相信这会使代码非常慢,因为此数组可能包含多达1000个图像


$get_search = 'Test 1';


$html = file_get_contents('https://www.everypixel.com/search?q='.$get_search.'&is_id=1&st=free');

preg_match_all('|<img.*?src=[\'"](.*?)[\'"].*?>|i', $html, $matches);


if (sizeof($matches[1]) > 3) {

  $ch_foreach = 1;

}


if ($ch_foreach == 0) {


    $get_search = 'Test 2';


  $html = file_get_contents('https://www.everypixel.com/search?q='.$get_search.'&is_id=1&st=free');

  preg_match_all('|<img.*?src=[\'"](.*?)[\'"].*?>|i', $html, $matches);


  if (sizeof($matches[1]) > 3) {

     $ch_foreach = 1;

  }


}


foreach ($matches[1] as $match) if ($tmp++ < 20) {


  if (@getimagesize($match)) {


    // display image

    echo $match;


  }


}


慕丝7291255
浏览 236回答 1
1回答
随时随地看视频慕课网APP
我要回答