php生成二维码不保存服务器还有下载功能的实现代码
发布:smiling 来源: PHP粉丝网 添加日期:2021-10-23 14:21:26 浏览: 评论:0
这篇文章主要介绍了php生成二维码不保存服务器还有下载功能的实现代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下。
有个大坑:在phpqrcode类里QRimage::png会重新定义header为header('content-type : img/png')
此header头解析不了html代码,所以在返回完后直接是一张二维码别的代码起不了任何作用,所以要返回完之后再重新声明一下header为header('Content-Type:text/html;charset=utf-8');,我在下边代码中声名过了,标红的就是
1.引入phpqrcode类(php操作二维码类)
2.调用encodePNG方法
3.修改encodePNG方法( 加入ob缓存,返回)base64加密后的图片流
4.将加密后的图片流返回给前端
5.前端通过img标签输出
6.下载功能:超链接直接加上 download="图片名称"
调用phpqrcode代码如下
- /**
- * 活动二维码生成
- * @param $text 参数$text表示生成二位的的信息文本;
- * @param $outfile 参数$outfile表示是否输出二维码图片 文件,默认否;
- * @param string $level 参数$level表示容错率,也就是有被覆盖的区域还能识别,分别是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%);
- * @param int $size 参数$size表示生成图片大小,默认是3;参数$margin表示二维码周围边框空白区域间距值;
- * @param int $margin
- * @param bool $saveandprint 参数$saveandprint表示是否保存二维码并显示。
- */
- include_once(ROOT_PATH . '/protected/components/phpqrcode.php');
- $link = LinkUrlHelper::getUrl(Yii::app()->user->eid,'ACTIVE_DETAIL',$id);
- $h5Url = $link['h5'];
- $baseImg = QRimage::encodePNG($h5Url,false);
- $this->renderPartial('training_code',['img'=>$baseImg]);
修改后的encodePNG方法
- public function encodePNG($intext, $outfile = false,$saveandprint=false)
- {
- try {
- ob_start();
- $tab = $this->encode($intext);
- $err = ob_get_contents();
- ob_end_clean();
- if ($err != '')
- QRtools::log($outfile, $err);
- $maxSize = (int)(QR_PNG_MAXIMUM_SIZE / (count($tab)+2*$this->margin));
- ob_start();//开启ob缓存
- QRimage::png($tab, $outfile, min(max(1, $this->size), $maxSize), $this->margin,$saveandprint);
- $imageString = base64_encode(ob_get_contents());//将图片流存入缓存并加密赋值给变量
- ob_end_clean();//清楚ob缓存
- header('Content-Type:text/html;charset=utf-8');// QRimage::png 会覆盖此header头,所以要重新声明一下,否则解析不了html代码。
- return "data:image/png;base64,".$imageString;//返回拼接好的串
- } catch (Exception $e) {
- QRtools::log($outfile, $e->getMessage());
- }
- }
Tags: php生成二维码
相关文章
- ·超简单PHP生成二维码实例(2014-07-14)
- ·PHP生成带LOGO的二维码图像(2014-08-28)
- ·php生成二维码程序代码(2014-08-28)
- ·php生成二维码实现代码(2014-08-28)
- ·PHP生成二维码,使用PHP QR Code二维码生成类库(2014-09-21)
- ·php生成二维码(2021-06-16)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)