我想做一个图片搜索引擎。我使用simple_html_dom
和preg_match_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?
谢谢。
发布于 2011-04-02 16:05:35
在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_biggest_image
变量,如果什么也没有找到,则设置为false。如果找到一个以上的“最大图像”,这将是第一个。
对于第二个问题,我不知道!
编辑:修正了一些东西!
https://stackoverflow.com/questions/5521935
复制相似问题