Ajax图像采集器

时间:2011-04-20 08:49:48

标签: php image jquery

我需要一个图像采集器。我的意思是像Digg一样的图像采集器,可以搜索其他页面(包括youtube,普通网站,经济学家......等等),获得大小合适的图像,如果我选择它,我可以上传到我的服务器

有没有人知道这个插件?

感谢。

1 个答案:

答案 0 :(得分:1)

我不知道任何现成的图书馆。但我曾经需要一种快速的方法来检索页面上的“主图像”。我最好的猜测是获得最大的文件大小。我使用PHP SimpleHTMLDom库轻松访问网站的<img>代码。

现在,这是代码的主要部分,它返回给定页面的最大图像文件的URL。

希望你能在此基础上继续发展。

// Load the remote document
$html = file_get_html($url);

$largest_file_size=0;
$largest_file_url='';

// Go through all images of that page
foreach($html->find('img') as $element){
    // Helper function to make absolute URLs from relative
    $img_url=$this->InternetCombineUrl($url,$element->src);
    // Try to get image file size info from header:
    $header=array_change_key_case(get_headers($img_url, 1));
    // Only continue if "200 OK" directly or after first redirect:
    if($header[0]=='HTTP/1.1 200 OK' || @$header[1]=='HTTP/1.1 200 OK'){
        if(!empty($header['content-length'])){
            // If we were redirected, the second entry is the one.
            // See http://us3.php.net/manual/en/function.filesize.php#84130
            if(!empty($header['content-length'][1])){
                $header['content-length']=$header['content-length'][1];
            }
            if($header['content-length']>$largest_file_size){
            $largest_file_size=$header['content-length'];
            $largest_file_url=$img_url;
            }
        }else{ 
            // If no content-length-header is sent, we need to download the image to check the size
            $tmp_filename=sha1($img_url);
            $content = file_get_contents($img_url);
            $handle = fopen(TMP.$tmp_filename, "w");
            fwrite($handle, $content);
            fclose($handle);
            $filesize=filesize(TMP.$tmp_filename);
            if($filesize>$largest_file_size){
            $largest_file_size=$filesize;
            $largest_file_url=$img_url;
            unlink(TMP.$tmp_filename);
            }
        }
    }
}
return $largest_file_url;