Rumah pembangunan bahagian belakang tutorial php thinkphp5框架下如何实现生成一个二维码?(代码)

thinkphp5框架下如何实现生成一个二维码?(代码)

Sep 30, 2018 pm 01:46 PM
thinkphp5

 本篇文章给大家带来的内容是关于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('PhpQrcode.phpqrcode',EXTEND_PATH,'.php');

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

        // $qrimage = new \QRimage();

        $value = $url;                    //二维码内容  
        $errorCorrectionLevel = 'H';    //容错级别  
        $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( 'code'=>200, 'data'=>$imageString ); 
        return json($data);



    }

 
}
Salin selepas log masuk

前端文件:当然啦,我用的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 ('logos');
    $.ajax({
             type: "GET",
             url: "code.html",
             data: '',
             dataType: "json",
             success: function(r){
                        if (r.code==200) { //console.log(r); 
                        var path = 'data:image/png;base64,'+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>
Salin selepas log masuk

Atas ialah kandungan terperinci thinkphp5框架下如何实现生成一个二维码?(代码). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah yang perlu saya lakukan jika saya mendapat ralat semasa menggunakan thinkphp5 di Pagoda? Apakah yang perlu saya lakukan jika saya mendapat ralat semasa menggunakan thinkphp5 di Pagoda? Dec 19, 2022 am 11:04 AM

Apakah yang perlu saya lakukan jika saya mendapat ralat semasa menggunakan thinkphp5 di Pagoda?

Apakah yang perlu saya lakukan jika catatan thinkphp5 tidak mendapat nilai? Apakah yang perlu saya lakukan jika catatan thinkphp5 tidak mendapat nilai? Dec 06, 2022 am 09:29 AM

Apakah yang perlu saya lakukan jika catatan thinkphp5 tidak mendapat nilai?

Bagaimana untuk mendapatkan URL yang diminta dalam thinkphp5 Bagaimana untuk mendapatkan URL yang diminta dalam thinkphp5 Dec 20, 2022 am 09:48 AM

Bagaimana untuk mendapatkan URL yang diminta dalam thinkphp5

Apakah yang perlu saya lakukan jika penulisan semula url thinkphp5 gagal? Apakah yang perlu saya lakukan jika penulisan semula url thinkphp5 gagal? Dec 12, 2022 am 09:31 AM

Apakah yang perlu saya lakukan jika penulisan semula url thinkphp5 gagal?

Bagaimana untuk mengalih keluar ikon bar tajuk thinkphp5 Bagaimana untuk mengalih keluar ikon bar tajuk thinkphp5 Dec 20, 2022 am 09:24 AM

Bagaimana untuk mengalih keluar ikon bar tajuk thinkphp5

Apakah yang perlu saya lakukan jika thinkphp5 menggesa bahawa pengawal tidak wujud? Apakah yang perlu saya lakukan jika thinkphp5 menggesa bahawa pengawal tidak wujud? Dec 06, 2022 am 10:43 AM

Apakah yang perlu saya lakukan jika thinkphp5 menggesa bahawa pengawal tidak wujud?

Bagaimana untuk menanyakan data semalam dalam ThinkPHP5 Bagaimana untuk menanyakan data semalam dalam ThinkPHP5 Dec 05, 2022 am 09:20 AM

Bagaimana untuk menanyakan data semalam dalam ThinkPHP5

Bagaimana untuk menyediakan gesaan ralat thinkphp5 Bagaimana untuk menyediakan gesaan ralat thinkphp5 Dec 07, 2022 am 10:31 AM

Bagaimana untuk menyediakan gesaan ralat thinkphp5

See all articles