php实现下载远程图片保存到本地(附代码)

代码如下:
声明一下:贴出来的代码大家可以借鉴,要是能看懂思路就很不错了,还有就是在试验中遇到错误,那就更好了,值得大家去研究!

<?php
/* 
*功能:php完美实现下载远程图片保存到本地 
*参数:文件url,保存文件目录,保存文件名称,使用的下载方式 
*当保存文件名称为空时则使用远程文件原来的名称 
*/ 
function getImage($url,$save_dir='',$filename='',$type=0){ 
    if(trim($url)==''){ 
        return array('file_name'=>'','save_path'=>'','error'=>1); 
    } 
    if(trim($save_dir)==''){ 
        $save_dir='./'; 
    } 
    if(trim($filename)==''){//保存文件名 
        $ext=strrchr($url,'.'); 
        if($ext!='.gif'&&$ext!='.jpg'){ 
            return array('file_name'=>'','save_path'=>'','error'=>3); 
        } 
        $filename=time().$ext; 
    } 
    if(0!==strrpos($save_dir,'/')){ 
        $save_dir.='/'; 
    } 
    //创建保存目录 
    if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){ 
        return array('file_name'=>'','save_path'=>'','error'=>5); 
    } 
    //获取远程文件所采用的方法  
    if($type){ 
        $ch=curl_init(); 
        $timeout=5; 
        curl_setopt($ch,CURLOPT_URL,$url); 
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); 
        $img=curl_exec($ch); 
        curl_close($ch); 
    }else{ 
        ob_start();  
        readfile($url); 
        $img=ob_get_contents();  
        ob_end_clean();  
    } 
    //$size=strlen($img); 
    //文件大小  
    $fp2=@fopen($save_dir.$filename,'a'); 
    fwrite($fp2,$img); 
    fclose($fp2); 
    unset($img,$url); 
    return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0); 
}

本文来自投稿,不代表科技代码立场,如若转载,请注明出处https://www.cwhello.com/2554.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
上一篇 2017年10月1日 09:44
下一篇 2017年10月4日 09:35

相关推荐

  • PHP入门指南:观察者模式。

    在现代软件开发中,设计模式是一种被广泛使用的概念。设计模式是存在于软件系统中的通用解决方案,它们经过测试和证明,可以帮助开发人员更高效地构建复杂的软件应用程序。观察者模式是其中一个很常见的设计模式...

    2023年5月22日
    00
  • 几种用PHP写99乘法表的方式

    首先按照规矩,还是先废话一番,对于刚学PHP的新手来讲,用php写九九乘法表无疑是非常经典的一道练习题。但不要小看这道练习题,它对于逻辑的考验还是相当到位的。也许有人会觉得,九九乘法表有什么难的,我两分...

    2022年6月21日
    0139
  • Redis和PHP的速度对比。

    Redis是一款高性能的缓存数据库,被广泛地用于提升Web应用程序的性能。它以其高速读取和写入数据的能力,以及良好的可扩展性而受到Web开发人员的青睐。而PHP是一门流行的Web编程语言,以其易学易用、开发效率高等...

    2023年5月21日
    02
  • PHP的cookie工作原理

    当客户访问某个网站时,在PHP中可以使用setcookie函数生成一个cookie,系统经处理把这个cookie发送到客户端并保存在c:\Documents and Settings\用户名\Cookies 目录下。cookie是HTTP标头的一部分,因此setcookie...

    2017年11月27日
    0182
  • PHP $_GET变量(数组)

    get这个词,常常出现在这里:<form  action=”abc.php”  method=”get” >.....</form> 这叫做“表单以get方式提交数据” 则$_GET这个预定义数组变量,就是指以这种方式提交的所有数据的集合(数组) 对应...

    2017年11月8日
    0220
  • 浅谈PHP中goto语法的用法

    本篇文章给大家介绍一下goto语法在PHP中的使用方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。PHP中goto语法的用法在C++、Java及很多语言中,都存在着一个神奇的语法,就是goto。顾名思...

    2023年3月29日
    05
  • PHP资源--RESOURCE

    说明:就是引用PHP外部的内容,这个时候的类型的就是资源。资源是通过专门的函数来建立和使用的。

    2017年11月28日
    0247
  • 重蔚自留地php学习第44天——继承重载

    回顾 自动加载:__autoload(),而是在需要使用类的时候,而类又没有被加载进内存情况下,会自动触发的一个函数而已。   类常量:const 常量名 使用:类名::常量名   静态:静态属性和静态方法,static ...

    2019年1月9日 我php路线
    0337

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息