PHP:获取最大的图像 - 性能问题



下面的代码找到给定网站上的所有图像并返回最大的图像,但它非常慢。谁能帮忙?谢谢!

$largest = 0;
$images = array();
reg_match_all('/(img|src)=("|')[^"'>]+/i', $html, $media);
unset($html);
$data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3",$media[0]);
foreach($data as $imgUrl) {
$info = pathinfo($imgUrl);
if (isset($info['extension'])) {
    if (($info['extension'] == 'jpg') ||
        ($info['extension'] == 'jpeg') ||
        ($info['extension'] == 'gif') ||
        ($info['extension'] == 'png')) {
        array_push($images, $imgUrl);
        $imgUrl = $this->rel2abs($imgUrl, $this->url);
        list($width, $height, $type, $attr) = getimagesize($imgUrl);
        $size = $width * $height;
        if ($size > $largest) {
            $this->image = $imgUrl;
            $largest = $size;
        }
    }
}

和你有同样的问题,问题是getimagesize正在将图像下载回服务器然后获取它的大小,所以我编写了自己的包装器,它只读取img元信息并返回大小。
这里:http://pastebin.com/3XuSAw0q 是阶级。它可以处理jpg,png和gif文件。

像这样使用它:

$image = new Parser_Provider_Image();
$sizes = $image->getImageSize('http://../../img.jpg');

相关内容

  • 没有找到相关文章

最新更新