Laravel 生成QRCODE

导读:本篇文章讲解 Laravel 生成QRCODE,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

     Laravel 生成QRCODE,网上比较多人用 的是  simplesoftwareio/simple-qrcode,先说这个,简单说一下安装:

composer require simplesoftwareio/simple-qrcode

SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class

'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class 

然后使用:

$qrcode = QrCode::size(300)->generate('大头竹笋ken!');

正常使用是这样的,将$qrcode的值写到<img> 中,就会显示QRCODE,但是如果我要将模板生成PDF ,图片就会不显示,输出html显示如果:

Laravel 生成QRCODE

 查看元素,$qrcode 其实是个SVG,需要转成PNG,于是使用以下代码:

$qrcode = QrCode::format('png')->size(300)->generate('大头竹笋ken!','abc.png');

报错了:

Laravel 生成QRCODE

本机没有安装 imagick,也懒得安装,最后在网上找到这种方法:

<img src="data:image/svg+xml;base64,{!! base64_encode($qrcode) !!}" style="width: 160px" />

先转base64编码再输出,完美解决!

 另一种方法: phpqrcode

下载地址:http://sourceforge.net/projects/phpqrcode/files/latest/download  
案例演示:http://phpqrcode.sourceforge.net/examples/

下载后的版本2010的,凡是下载了一下旧版本的插件,最后在本机的环境运行一下,检查有无语法不兼容的问题,因为我现在的PHP 版本已经在用7.4 了!

测试后无问题,接着部署到laravel 里面,phpqrcode 解压后我放的位置:app/Lib/phpqrcode/

composer.json 新增内容:

Laravel 生成QRCODE

运行命令:

composer dumpautoload 

在Controller 中使用:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use phpqrcode;

class QrcodeController extends Controller
{
    public function index(){
        $img = new \QRcode();

        $value = 'https://www.baidu.com'; //二维码内容 
        $img->png($value,false,'H',5,1);
        die();
    }

}

png() 的参数说明:

第一个参数$text,就是上面代码里的URL网址参数,

第二个参数$outfile默认为否,不生成文件,只将二维码图片返回,否则需要给出存放生成二维码图片的路径

第三个参数$level默认为L,这个参数可传递的值分别是L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%)。这个参数控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比。利用二维维码的容错率,我们可以将头像放置在生成的二维码图片任何区域。

第四个参数$size,控制生成图片的大小,默认为4

第五个参数$margin,控制生成二维码的空白区域大小

第六个参数$saveandprint,保存二维码图片并显示出来,$outfile必须传递图片路径。

die()是一定要填的,如果不填就会有一堆乱码,像这样:

Laravel 生成QRCODE

 在laravel 中这样就很麻烦了,所以最后我将它做成接口了!

路由
Route::get('/qrcode/index', 'QrcodeController@index');


模板
<img src="{{ url('/qrcode/index') }}" style="width: 100px;"/>

两种方法都可以,常用的是第一种simplesoftwareio/simple-qrcode,第二种太旧了!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/97975.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!