php中使用gd库实现远程图片下载实例


Posted in PHP onMay 12, 2015

因为今天想写个远程下载图片的类,提前热身写了个php gd库实现远程图片下载功能,当然curl实现更好,php gd库实现远程图片下载功能主要使用gd库的两个函数ImageCreateFromXXX()用于生成图片函数和ImageXXX函数,XXX表示不同图片的扩展名,所以你要想办法获取远程图片的扩展名了,附上php代码如下:

<?php
header("Content-type:text/html ; charset=utf-8");
 
if (!empty($_POST['submit'])){
 $url = $_POST['url'];
 $pictureName = $_POST['pictureName'];
 $img = getPicture($url,$pictureName);
 echo '<pre><img src="'.$img.'"></pre>';
 }
function getPicture($url,$pictureName){
 if ($url == "") return false;
 //获取图片的扩展名
 $info = getimagesize($url);
 $mime = $info['mime'];
 $type = substr(strrchr($mime,'/'), 1);
 //不同的图片类型选择不同的图片生成和保存函数
 switch($type){
 case 'jpeg':
  $img_create_func = 'imagecreatefromjpeg';
  $img_save_func = 'imagejpeg';
  $new_img_ext = 'jpg';
  break;
 case 'png':
  $img_create_func = 'imagecreatefrompng';
  $img_save_func = 'imagepng';
  $new_img_ext = 'png';
  break;
 case 'bmp':
  $img_create_func = 'imagecreatefrombmp';
  $img_save_func = 'imagebmp';
  $new_img_ext = 'bmp';
  break;
 case 'gif':
  $img_create_func = 'imagecreatefromgif';
  $img_save_func = 'imagegif';
  $new_img_ext = 'gif';
  break;
 case 'vnd.wap.wbmp':
  $img_create_func = 'imagecreatefromwbmp';
  $img_save_func = 'imagewbmp';
  $new_img_ext = 'bmp';
  break;
 case 'xbm':
  $img_create_func = 'imagecreatefromxbm';
  $img_save_func = 'imagexbm';
  $new_img_ext = 'xbm';
  break;
 default:
  $img_create_func = 'imagecreatefromjpeg';
  $img_save_func = 'imagejpeg';
  $new_img_ext = 'jpg';   
 }
 if ($pictureName == ""){
 $pictureName = time().".{$new_img_ext}";
 }else{
 $pictureName = $pictureName.".{$new_img_ext}";
 }
 $src_im = $img_create_func($url); //由url创建新图片
 $img_save_func($src_im, $pictureName); //输出文件到文件
 return $pictureName;
}
 
?>
<form method="POST" action="">
远程url地址:<input type="text" name="url" size=20 /><br />
文件名称:<input type="text" name="pictureName" size=20 />
<input type="submit" name="submit" value="下载" />
</form>

运行结果如下图:(图片自动保存在当前文件目录,不明白的可以留言)

php中使用gd库实现远程图片下载实例

PHP 相关文章推荐
php将数据库中所有内容生成静态html文档的代码
Apr 12 PHP
比较全面的PHP数组的使用方法小结
Sep 23 PHP
php简单的会话类代码
Aug 08 PHP
一个PHP并发访问实例代码
Sep 06 PHP
php addslashes 利用递归实现使用反斜线引用字符串
Aug 05 PHP
php中curl使用指南
Feb 05 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 PHP
ThinkPHP5.1验证码功能实现的示例代码
Jun 08 PHP
PHP输入输出流学习笔记
May 12 #PHP
PHP SPL标准库之SplFixedArray使用实例
May 12 #PHP
php中get_defined_constants函数用法实例分析
May 12 #PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
May 12 #PHP
php遍历类中包含的所有元素的方法
May 12 #PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
May 12 #PHP
php实现每天自动变换随机问候语的方法
May 12 #PHP
You might like
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
IE6下opacity与JQuery的奇妙结合
2013/03/01 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
2019/05/28 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
Vue的Options用法说明
2020/08/14 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
TensorFlow实现模型评估
2018/09/07 Python
python对html过滤处理的方法
2018/10/21 Python
python的concat等多种用法详解
2018/11/28 Python
详解python 爬取12306验证码
2019/05/10 Python
浅谈django2.0 ForeignKey参数的变化
2019/08/06 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
python 连续不等式语法糖实例
2020/04/15 Python
python中的unittest框架实例详解
2021/02/05 Python
Matplotlib animation模块实现动态图
2021/02/25 Python
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
亚洲领先的旅游体验市场:Voyagin
2019/11/23 全球购物
教师求职信范文分享
2013/12/27 职场文书
校车安全责任书
2014/08/25 职场文书
欢迎家长标语
2014/10/08 职场文书
2014年电教工作总结
2014/12/19 职场文书