首頁 > 後端開發 > php教程 > thinkphp5框架下如何實作產生一個二維碼? (代碼)

thinkphp5框架下如何實作產生一個二維碼? (代碼)

不言
發布: 2023-04-04 08:32:01
轉載
4415 人瀏覽過

 這篇文章帶給大家的內容是關於thinkphp5架構下如何實現產生一個二維碼? (程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

二話不說,先上程式碼:

第一種: 不用再本地儲存文件,直接在前台頁面顯示:

這是控制器裡面的內容,哦,對啦,首先要下載SDK:.phpqrcode類別檔案下載,下載位址:https://sourceforge.net/projects/phpqrcode/

插件只要:下載下來的類別檔案是一個壓縮包,裡邊包含很多文件和示範程序,我們只需要裡邊的phpqrcode.php這一檔就可以產生二維碼了。它是一個多個類別的集合文件,我們需要用到裡邊的QRcode類別(第2963行)的png()方法(第3090行)。

檔案放在框架extend 檔案中可以自己給資料夾一個名字,我的這裡是PhpQrcode 裡面的檔案是:phpqrcode.php

<?php
namespace app\index\controller;
use think\Controller;
use think\Loader;

Loader::import(&#39;PhpQrcode.phpqrcode&#39;,EXTEND_PATH,&#39;.php&#39;);

class Index extends Controller
{
    //ajax访问
    //通过链接生成二维码
    public function code($url = "http://www.baidu.com")
    {
        $qrcode = new \QRcode();

        // $qrimage = new \QRimage();

        $value = $url;                    //二维码内容  
        $errorCorrectionLevel = &#39;H&#39;;    //容错级别  
        $matrixPointSize = 6;           //生成图片大小  

        ob_start();
        $qrcode::png($value,false , $errorCorrectionLevel, $matrixPointSize, 2);  
        // $object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2); //这里就是把生成的图片流从缓冲区保存到内存对象上,使用base64_encode变成编码字符串,通过json返回给页面。
        $imageString = base64_encode(ob_get_contents()); //关闭缓冲区
        ob_end_clean(); //把生成的base64字符串返回给前端 
        $data = array( &#39;code&#39;=>200, &#39;data&#39;=>$imageString ); 
        return json($data);



    }

 
}
登入後複製

前端檔案:當然啦,我用的jquery比較老舊,所以有用jquery的自行改一下好啦:

<div id="logos">
<button onclick="changess()">点击</button>
  <img src="" class="qrcode" alt="二维码展示"/>

</div>
<script type="text/javascript" src="__INDEX__js/jquery.js"></script>
<script type="text/javascript">

  function changess()
  {
     var logos = document.getElementById (&#39;logos&#39;);
    $.ajax({
             type: "GET",
             url: "code.html",
             data: &#39;&#39;,
             dataType: "json",
             success: function(r){
                        if (r.code==200) { //console.log(r); 
                        var path = &#39;data:image/png;base64,&#39;+r.data; //给img的sec赋值。
                        console.log(path);
                         $("#logos").html("<img src="+path+">");
                        
                         logos.html("<img src="+path+">");
                         console.log( logos.html("<img src="+path+">"));
                       }else{
                            alert(r.err); 
                          }
                      }
         });
  }
</script>
登入後複製

以上是thinkphp5框架下如何實作產生一個二維碼? (代碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板