[原创]php实现 data url的图片生成与保存


Posted in PHP onDecember 04, 2016

Data URL是在本地直接绘制图片,不是从服务器加载,所以节省了HTTP连接,起到加速网页的作用。

语法:

data:image/jpg;    声明数据协议及类型名称
base64,               编码形式为base64
/9j/4AAQSkZ……    base64编码结果

Data URL的生成方法(php):

<?php  $img_file = file_get_contents("https://3water.com/img/logo_s2.png");  echo base64_encode($img_file);

注意:本方法适合于小图片,大图片就不要考虑了,另外IE8以下浏览器不支持这种方法。用这种方法会加重客户端的CPU和内存负担,总之有利有弊。

那么我们如何把网站上的Data URL格式的图片转存成实际图片呢?

其实很简单,我们把图片内容就是src部分传到后台,保存即可。

$img_content // 图片内容
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $img_content, $result)){
 $type = $result[2];
 $new_file = "./test.{$type}";
 if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $img_content)))){
  echo '新文件保存成功:', $new_file;
 }
}
PHP 相关文章推荐
PHP默认安装产生系统漏洞
Oct 09 PHP
综合图片计数器
Oct 09 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
Aug 06 PHP
PHP中把stdClass Object转array的几个方法
May 08 PHP
浅析php创建者模式
Nov 25 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
Jul 31 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
php简单压缩css样式示例
Sep 22 PHP
php array_values 返回数组的所有值详解及实例
Nov 12 PHP
laravel5.4生成验证码的实例讲解
Aug 05 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 PHP
php 魔术常量详解及实例代码
Dec 04 #PHP
深入浅出讲解:php的socket通信原理
Dec 03 #PHP
thinkphp实现分页显示功能
Dec 03 #PHP
thinkphp jquery实现图片上传和预览效果
Jul 22 #PHP
详解PHP用substr函数截取字符串中的某部分
Dec 03 #PHP
微信公众平台开发(五) 天气预报功能开发
Dec 03 #PHP
php die()与exit()的区别实例详解
Dec 03 #PHP
You might like
PHP 程序员应该使用的10个组件
2009/10/31 PHP
PHP 根据IP地址控制访问的代码
2010/04/22 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
php计算整个目录大小的方法
2015/06/19 PHP
php采用session实现防止页面重复刷新
2015/12/24 PHP
基于PHP实现等比压缩图片大小
2016/03/04 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
prototype Element学习笔记(Element篇三)
2008/10/26 Javascript
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
2011/01/06 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
2016/06/13 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
Python CSV模块使用实例
2015/04/09 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
python实现抖音视频批量下载
2018/06/20 Python
Django添加sitemap的方法示例
2018/08/06 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
Opencv 图片的OCR识别的实战示例
2021/03/02 Python
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
东方电视购物:东方CJ
2016/10/12 全球购物
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
清洁工岗位职责
2014/01/29 职场文书
化学教学随笔感言
2014/02/19 职场文书
新学期开学标语
2014/06/30 职场文书
软件测试专业推荐信
2014/09/18 职场文书
电影复兴之路观后感
2015/06/02 职场文书
mysql分表之后如何平滑上线详解
2021/11/01 MySQL
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript
解决xampp安装后Apache无法启动
2022/03/21 Servers
redis lua限流算法实现示例
2022/07/15 Redis