2011-04-20 39 views
0

我需要图像采集卡。我的意思是像Digg这样的图像采集卡,可以搜索其他页面(包括YouTube,普通网站,经济学家,......任何),获得体面大小的图像,如果选择它,我可以将其上传到我的服务器。Ajax图像采集卡

有没有人知道这个插件?

谢谢。

回答

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; 
+0

我会看看它。谢谢。 – denislexic 2011-04-20 10:42:45