zoukankan      html  css  js  c++  java
  • PHP 下载远程图片

    方法一:file_get_contents

    /**-- 下载远程文件 --**/
        function down_img($url){
            set_time_limit(60);
    	if($url==""){
                return false;
    	}
    	$ext=strrchr($url,".");
    	if($ext!=".gif" && $ext!=".jpg" && $ext!=".png" && $ext!=".jpeg"){
                return false;
    	}
    	if(!file_exists($this->uploadpath)){
                dir_create($this->uploadpath);
    	}	
    	$filename=$this->getname($ext);
    	$img = file_get_contents($url);
    	$fp2=@fopen($this->uploadpath.$filename, "a");   //此处可加上图片存放路径
    	fwrite($fp2,$img);
    	fclose($fp2);
            /*
    	$imgwh=getimagesize($this->uploadpath.$filename);
    	if($imgwh[0]>480 || $imgwh[1]>480){		
    		$this->image->thumb($filename, 480, 480);
    	}*/	
    	return $this->urlpic.$filename;   //返回新的图片名称
        }
        /**-- 下载远程ICON .175x175-75.jpg  .100x100-75.jpg 350x350-75.jpg 512x512-75.jpg --**/
        function down_icon($url,$size){
    	if($url==""):return false;endif;
    	$ext='.jpg';
    	$num=strrpos($url,'.');
    	$data = substr($url, 0,$num); 
    	$data=$data.$size;
    	
    	if(!file_exists($this->uploadpath)){
                dir_create($this->uploadpath);
    	}	
    	$filename=$this->getname($ext);
    	$img = file_get_contents($data);
    	$fp2=@fopen($this->uploadpath.$filename, "a");   //此处可加上图片存放路径
    	fwrite($fp2,$img);
    	fclose($fp2);
    	return $this->urlpic.$filename;   //返回新的图片名称
        }
        /**-- 获取附件名称 @param $fileext 附件扩展名 --**/
        function getname($fileext){
            return date('Ymdhis').rand(100, 999).$fileext;
        }
    

    方法二:redefile

    /**-- 下载远程文件 --**/
        function down_img($url){
            set_time_limit(60);
    		if($url==""){
    				return false;
    		}
    		$ext=strrchr($url,".");
    		if($ext!=".gif" && $ext!=".jpg" && $ext!=".png" && $ext!=".jpeg"){
    				return false;
    		}
    		if(!file_exists($this->uploadpath)){
    				dir_create($this->uploadpath);
    		}	
    		$filename=$this->getname($ext);
    		ob_start();    //开启缓冲区
    			
    			$opts = array(  
    				'http'=>array(  
    					'method'=>"GET",  
    					'timeout'=>25,   
    				)  
    			);  
    			$context = stream_context_create($opts);  
    			
    			readfile($url, false, $context);  
    		$img = ob_get_contents();
    		ob_end_clean();
    		$fp2=@fopen($this->uploadpath.$filename, "a");   //此处可加上图片存放路径
    		fwrite($fp2,$img);
    		fclose($fp2);
    			/*
    		$imgwh=getimagesize($this->uploadpath.$filename);
    		if($imgwh[0]>480 || $imgwh[1]>480){		
    			$this->image->thumb($filename, 480, 480);
    		}*/	
    		return $this->urlpic.$filename;   //返回新的图片名称
        }
        /**-- 下载远程ICON .175x175-75.jpg  .100x100-75.jpg 350x350-75.jpg 512x512-75.jpg --**/
        function down_icon($url,$size){
    		if($url==""):return false;endif;
    		$ext='.jpg';
    		$num=strrpos($url,'.');
    		$data = substr($url, 0,$num); 
    		$data=$data.$size;
    		
    		if(!file_exists($this->uploadpath)){
    			dir_create($this->uploadpath);
    		}	
    		$filename=$this->getname($ext);
    		ob_start();
    		readfile($data);
    		$img = ob_get_contents();
    		ob_end_clean();
    
    		$fp2=@fopen($this->uploadpath.$filename, "a");   //此处可加上图片存放路径
    		fwrite($fp2,$img);
    		fclose($fp2);
    		
    		return $this->urlpic.$filename;   //返回新的图片名称
        }
        /**-- 获取附件名称 @param $fileext 附件扩展名 --**/
        function getname($fileext){
            return date('Ymdhis').rand(100, 999).$fileext;
        }
    
  • 相关阅读:
    PHP数字补零的两种方法
    php 防跨站表单提交
    PHP字符串压缩
    原生JS实现表单序列化serialize()
    java并发实现原子操作
    Effective java -- 9 并发/序列化
    Effective java -- 8 异常
    Effective java -- 7 通用程序设计
    Effective java -- 6 方法
    Effective java -- 5 枚举和注解
  • 原文地址:https://www.cnblogs.com/mr-amazing/p/4157746.html
Copyright © 2011-2022 走看看