Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php网络图像搜索_Php - Fatal编程技术网

php网络图像搜索

php网络图像搜索,php,Php,我想做一个图片搜索引擎。我使用simple\u html\u dom和preg\u match\u all获取所有图像,然后使用getimagesize获取所有图像大小。 这是我代码的一部分 <?php header('Content-type:text/html; charset=utf-8'); require_once 'simple_html_dom.php'; $v = 'http://www.jqueryimage.com/'; $html = file_get_html($v

我想做一个图片搜索引擎。我使用
simple\u html\u dom
preg\u match\u all
获取所有图像,然后使用
getimagesize
获取所有图像大小。 这是我代码的一部分

<?php
header('Content-type:text/html; charset=utf-8');
require_once 'simple_html_dom.php';
$v = 'http://www.jqueryimage.com/';
$html = file_get_html($v);
foreach($html->find('img') as $element) {
        if( preg_match('#^http:\/\/(.*)\.(jpg|gif|png)$#i',$element->src)){
            $image = $element->src;
            //$arr = getimagesize($image); //get image width and height            
            //$imagesize = $arr[0] * $arr[1];  
            echo $image.'<hr />';
        }
    }
?>

第一个问题,如何添加判断,以便我能够回响最大尺寸的图像?(只有一张图片)

第二个问题,我可以在这两种情况下获得图像的真实url,第一种情况下图像是作为“http”开始的,第二种情况下图像是作为
/
开始的。 但是,在图像作为“/”或
。/
。/../../
开始的情况下,如何获取图像的真实url?我很难判断图像中有多少个
。/
,然后剪切站点url以补充图像的真实url


谢谢。

foreach
循环之前插入此项:

$maxsize = -1;
$the_biggest_image = false;
在下面插入这个
$image=$element->src

$arr = getimagesize($image);
if (($arr[0] * $arr[1]) > $maxsize) {
  $maxsize = $arr[0] * $arr[1];
  $the_biggest_image = $image;
  }
foreach
循环之后,将设置
$the_maxist_image
变量,如果未找到,则设置为false。如果找到了多个“最大图像”,这将是第一个

第二个问题,我不知道


编辑:修正了一些东西

“最大”是什么意思?例如200x200、1024x1、10x1000。。。这三个中哪一个最大?你想计算它的表面积吗?@Wh1T3h4Ck5,200x200=
40000
,1024x1=
1024
,10x1000=
10000
,200x200是最大的。如果在最大的
40000
中有大小相同的移动图像,则获取第一个。谢谢,正是我的意思。看看我的答案!谢谢,它可以工作。关于第二个问题,我将提出一个新问题。