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

yipeiwu_com6年前PHP代码库

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

语法:

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

Data URL的生成方法(php):

<?php  $img_file = file_get_contents("//www.jb51.net/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 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码

<pre> <?php /********************** 一个简单的目录递归函数 第一种实现办法:用dir返回对象 *******************...

php后退一页表单内容保存实现方法

php表单在提交之后再后退,表单的内容默认是被清空的(使用session_start的时候), 解决方法是在session_start() 之后,字符输出之前写上 复制代码 代码如下:...

PHP5.3新特性小结

本文总结分析了PHP5.3新特性。分享给大家供大家参考,具体如下: 1、命名空间 解决了类,函数和常量名冲突的问题 2、静态绑定 继承时父类可以直接调用子类重写父类的方法 class...

PHP正则的Unknown Modifier错误解决方法

如下正则: $a='2<span><nobr>tóng<span class="h">dòng</span></nobr>...

PHP DB 数据库连接类定义与用法示例

本文实例讲述了PHP DB 数据库连接类定义与用法。分享给大家供大家参考,具体如下: 声明: 近期观看了一节 PHP 消息队列视频,对于讲师WiconWang提供的代码,在此分享一下,希...