PHP 将dataurl转成图片image方法总结

yipeiwu_com6年前PHP代码库

PHP 将dataurl转成图片image方法

使用canvas 生成的图片,是使用dataurl的,php无法直接通过file_put_contents方法保存到本地电脑,需要做一下转码。

 图片dataurl 如下

$imgstr = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';

方法一:

通过正则提取出dataurl存储所需的数据,然后直接展示在页面上

if (!preg_match('/data:([^;]*);base64,(.*)/', $imgstr, $matches)) {
  die("error");
}
 
$content = base64_decode($matches[2]);
header('Content-Type: '.$matches[1]);
header('Content-Length: '.strlen($content));
 
echo $content;
die;

 方法二:

如果仅仅是想保存图片到本地,可以用substr 和 strpos 方法

 
$imgdata = substr($imgstr,strpos($imgstr,",") + 1);
$decodedData = base64_decode($imgdata);
file_put_contents('11.png',$decodedData );

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

PHP模块化安装教程

本文讲述了PHP模块化安装的方法。分享给大家供大家参考,具体如下: PHP(Hypertext Preprocessor)这门虽然简单但功能却是非常强大的脚本语言,下面就 基于Windo...

php简单获取复选框值的方法

本文实例讲述了php简单获取复选框值的方法。分享给大家供大家参考,具体如下: html: <form id="form1" name="form1" method="post"...

PHP中array_merge和array相加的区别分析

首先来看看键名是string,两者区别: 复制代码 代码如下:<?php$arr1 = array('a'=>'PHP');$arr2 = array('a'=>'JA...

php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别

“PHP_SELF” 当前正在执行脚本的文件名,与 document root 相关。举例来说,在 URL 地址为 //www.jb51.net/test.php/foo.bar 的脚本...

在Mac上编译安装PHP7的开发环境

在Mac上编译安装PHP7的开发环境

今天看到鸟哥发微博说php7 beta1测试版发布了,于是赶紧就去抢先下载,把自己的开发环境也升级到PHP7去,话不多少,下面就一起来搞起吧。。。 首先你得去官网下载php7 beta...