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中的Web套接字。

    PHP是一种广泛使用的开源编程语言,主要用于Web开发。在PHP中,套接字是指一种网络协议,用于在应用程序之间传输数据。在Web开发中,Web套接字是一种很重要的技术。Web套接字是一种允许Web服务器与客户端之间建立连…

    2023年5月30日
    01
  • 详解PHP序列化和反序列化

    序列化序列化格式在PHP中,序列化用于存储或传递 PHP 的值的过程中,同时不丢失其类型和结构。序列化函数原型如下:string serialize ( mixed $value )先看下面的例子:class CC { public $data; private $pass; pu…

    2022年6月11日
    0169
  • PHP中的SEO优化技巧。

    随着互联网发展的不断深入,越来越多的企业开始重视SEO优化技巧,以提高自己的品牌知名度和业务流量。其中,PHP是一种常用的编程语言,几乎所有的网站都使用它来开发和维护自己的网站。因此,在PHP中使用一些简单易…

    2023年5月30日
    03
  • PHP函数的DI框架。

    随着互联网技术的不断发展,各种编程语言和框架层出不穷。其中,PHP作为一种广泛应用于Web开发的编程语言,已经成为了建立Web应用程序的热门选择之一。同时,由于许多Web应用程序都需要复杂的逻辑控制,因此使用依…

    2023年5月23日
    02
  • PHP8中的函数:str_begins_with()的多种使用场景。

    随着PHP编程语言的不断发展,其语法和函数库也在不断地更新和完善。PHP8中新增加的函数str_begins_with()提供了一种新的方式来判断字符串是否以指定的前缀开头。本文将介绍str_begins_with()函数的多种使用场景,帮…

    2023年5月21日
    00
  • PHP中的负载均衡器。

    负载均衡器(Load Balancer)是一种重要的技术,它可以在多个服务器之间分配请求,确保每个服务器都不会过载,并且尽可能提高系统可用性和性能。PHP是一种在Web应用程序开发中常用的编程语言,而在PHP中,使用负载…

    2023年5月28日
    00
  • 我来教你网站开发教程零基础,php网站开发实战教程。

    在当今的互联网时代,网站开发已经成为一项必备的技能,无论你是想为自己的项目创建一个网站,还是想成为一名专业的网站开发者,学习网站开发都是非常有用的,本文将为你提供一份零基础的PHP网站开发实战教程,帮助…

    2024年6月30日
    01
  • PHP入门指南:字符串。

    PHP是一种广泛使用的服务器端脚本语言,它强大的字符串处理功能是其受欢迎的原因之一。本文将介绍PHP字符串的基础知识以及常见的字符串操作。什么是字符串?在计算机编程中,字符串是由一系列字符组成的数据类型。…

    2023年5月22日
    04

联系我们

QQ:951076433

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