php下载远程图片突破防盗链

时间:2012-01-02 00:42 作者:php 点击:
php下载远程图片突破防盗链!给出代码!灵活使用!

  

 

php下载远程图片突破防盗链!给出代码!灵活使用!

 

  1. <?  
  2. //原创文章请保留  
  3. //来源http://www.phpzy.com  
  4. $time=time();  
  5.  
  6. function createFolder($path)  
  7. {  
  8.    if (!file_exists($path))  
  9.    {  
  10.     createFolder(dirname($path));  
  11.  
  12.     mkdir($path, 0777);  
  13.    }  
  14. }  
  15.  
  16. function randomkeys($length)  
  17. {  
  18.     $output='';  
  19.     for ($a = 0; $a < $length$a++) {  
  20.         $output .= mt_rand(1, 9);    //生成php随机数  
  21.     }  
  22.     return $output;  
  23. }  
  24.  
  25.  
  26. $tableid=(int)$_GET[tableid];  
  27.  
  28.  
  29. function isExistFile($url){  
  30.  $handle = @fopen($url,"r");     
  31.    if($handle){return true;}     
  32.    return false;   
  33. }  
  34.  
  35. $f=isExistFile($url);  
  36. if($f){  
  37.  
  38. $idname=intval($row[aid]/1000);  
  39. $idname2=intval($row[aid]/10000);  
  40. $fname="../upload/big/$idname2/$idname";  
  41.  
  42. createFolder($fname);  
  43. //$filename = "$fname/".basename($url);    
  44. $filename = "$fname/".$row[id].randomkeys(8).strrchr($url,".");    
  45.  
  46. function GrabImage($url,$filename="") {   
  47. if($url==""):return false;endif;   
  48. if($filename=="") {   
  49. $ext=strrchr($url,".");   
  50. if($ext!=".gif" && $ext!=".jpg"):return false;endif;   
  51. $filename=date("dMYHis").$ext;   
  52. }   
  53. //echo $url;exit;  
  54.  
  55.  
  56.  
  57. $ch = curl_init();     
  58. curl_setopt ($ch, CURLOPT_URL, $url);   
  59. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);     
  60. curl_setopt ($ch, CURLOPT_REFERER, "http://www.phpzy.com/"); /*破解防盗链*/   
  61. curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)');     
  62. curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);     
  63. $file_contents = curl_exec($ch);     
  64. curl_close($ch);    
  65.  
  66. $img = $file_contents;   
  67.  
  68. /*  
  69. ob_start();   
  70. readfile($url);   
  71. $img = ob_get_contents();   
  72. ob_end_clean();   
  73. */ 
  74. $size = strlen($img);   
  75. $fp2=@fopen($filename"a");   
  76. fwrite($fp2,$img);   
  77. fclose($fp2);   
  78. return $filename;   
  79. }   
  80.  
  81.  
  82. $img=GrabImage("$url","$filename");   
  83.  
  84. echo $img=str_replace("../upload","",$img);  
  85.  
  86.  
  87. ?> 

 


标签(Tag):
------分隔线----------------------------
推荐内容
热点内容