php 采集远程图片

变量说明:$url 是远程图片的完整url地址,不能为空,$filename 是可选变量,如果为空,本地文件名将基于时间和日期.

自动生成,代码如下:

  1. function grabimage($url,$filename="") {
  2. if($url==""):return false;endif;
  3. if($filename=="") {
  4. $ext=strrchr($url,".");
  5. if($ext!=".gif" && $ext!=".jpg"):return false;endif;
  6. $filename=date("dmyhis").$ext;
  7. }
  8. ob_start();
  9. readfile($url);
  10. $img = ob_get_contents();
  11. ob_end_clean(); //开源代码phpfensi.com
  12. $size = strlen($img);
  13. $fp2=@fopen($filename, "a");
  14. fwrite($fp2,$img);
  15. fclose($fp2);
  16. return $filename;
  17. }

如果可用采集防采集的功能把fopen改成如下:

  1. $ch = curl_init();
  2. curl_setopt($ch, curlopt_url, $url);//这是目标地址
  3. curl_setopt($ch, curlopt_header, 0);
  4. curl_setopt($ch, curlopt_returntransfer, 1);
  5. curl_setopt($ch, curlopt_referer, $referer);//这里伪造
  6. $data = curl_exec($ch);
  7. curl_close($ch);
  8. echo $data;