php下载远程图片突破防盗链!给出代码!灵活使用!
- <?
- //原创文章请保留
- //来源http://www.phpzy.com
- $time=time();
- function createFolder($path)
- {
- if (!file_exists($path))
- {
- createFolder(dirname($path));
- mkdir($path, 0777);
- }
- }
- function randomkeys($length)
- {
- $output='';
- for ($a = 0; $a < $length; $a++) {
- $output .= mt_rand(1, 9); //生成php随机数
- }
- return $output;
- }
- $tableid=(int)$_GET[tableid];
- function isExistFile($url){
- $handle = @fopen($url,"r");
- if($handle){return true;}
- return false;
- }
- $f=isExistFile($url);
- if($f){
- $idname=intval($row[aid]/1000);
- $idname2=intval($row[aid]/10000);
- $fname="../upload/big/$idname2/$idname";
- createFolder($fname);
- //$filename = "$fname/".basename($url);
- $filename = "$fname/".$row[id].randomkeys(8).strrchr($url,".");
- function GrabImage($url,$filename="") {
- if($url==""):return false;endif;
- if($filename=="") {
- $ext=strrchr($url,".");
- if($ext!=".gif" && $ext!=".jpg"):return false;endif;
- $filename=date("dMYHis").$ext;
- }
- //echo $url;exit;
- $ch = curl_init();
- curl_setopt ($ch, CURLOPT_URL, $url);
- curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt ($ch, CURLOPT_REFERER, "http://www.phpzy.com/"); /*破解防盗链*/
- curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)');
- curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
- $file_contents = curl_exec($ch);
- curl_close($ch);
- $img = $file_contents;
- /*
- ob_start();
- readfile($url);
- $img = ob_get_contents();
- ob_end_clean();
- */
- $size = strlen($img);
- $fp2=@fopen($filename, "a");
- fwrite($fp2,$img);
- fclose($fp2);
- return $filename;
- }
- $img=GrabImage("$url","$filename");
- echo $img=str_replace("../upload","",$img);
- ?>