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实现Redis数据库分片的方法。

    Redis是一款高性能的NoSQL数据库,而分片是一种常用的数据分布式处理方法,可以提高数据库的性能和扩展性。本文将介绍如何使用PHP实现Redis数据库分片。Redis分片概述Redis分片是将一个大的Redis数据库拆分成多个较…

    2023年5月21日
    06
  • 浅谈PHP中获取命令行参数的方法

    在PHP CLI 命令行中,有需要像网页的 GET 、 POST 一样为命令行脚本提供参数;那么如何获取这些命令行的参数呢?下面本篇文章就来带大家了解一下PHP中获取命令行参数的方法,介绍一下$argv变量和getopt()函数。$arg…

    2023年3月29日
    01
  • thinkphp涉及英语单词!

    controller        控制器 model                模型 view                视图 namespace        命名空间 use                使用 route                路由 rule                规则 assign                …

    2018年4月30日
    0467
  • PHP中如何进行前端框架和后端框架的集成?

    随着Web应用程序开发的日益复杂和需要的交互性越来越高,使用前端框架和后端框架已经变得非常普遍。在此过程中,集成前端框架和后端框架也成为必不可少的步骤,以确保应用程序的顺畅运行和高效性能。本文将重点介绍…

    2023年5月17日
    00
  • PHP中的邮件处理。

    随着互联网的发展,邮件已经成为人们日常生活和工作中必不可少的一部分。在网站开发中,会经常遇到需要通过邮件发送用户注册,找回密码等信息的场景。PHP中通过使用邮件处理类库,可以方便地实现与邮件相关的操作,…

    2023年5月30日
    04
  • 如何在PHP中实现OCR识别功能。

    随着科技的不断发展,光学字符识别(OCR)技术已经成为人工智能领域中一个非常重要的方向。发布在1995年第一版PHP的语言,如今已成为web应用程序开发的重要利器之一。本文将介绍如何在PHP中实现OCR识别功能。一、OC…

    2023年5月23日
    025
  • 我来说说如何使用PHP代码实现QQ代码。

    PHP代码实现QQ代码:通过调用腾讯QQ互联API,获取access_token和openid,然后生成QQ二维码。 什么是QQ代码? QQ代码,又称为QQ透明皮肤,是一种基于腾讯QQ聊天软件的自定义皮肤,通过编写特定的HTML、CSS和JavaScript…

    2024年7月7日
    02
  • 关于二进制的原码、补码、反码详解

    说明:在计算机中cpu操作的是补码,原因就是整数分负数和正数 二进制的最大位:0是正数,1是负数 正数的三码:都一样 负数的反码:按位取反,符号位不变。 负数的补码:在反码基础加1 $a & $b: $a | $b: ~ -$…

    2017年12月11日 PHP自学教程
    0295

联系我们

QQ:951076433

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