我在将图像获取为数组时遇到以下问题。在这段代码中,我试图检查是否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;
}
}