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

5年以前  |  阅读数:869 次  |  编程语言:PHP 

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

语法:

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

Data URL的生成方法(php):

<?php $img_file = file_get_contents("http://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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例