1. 程式人生 > >thinkPHP5引入endroid/qr-code類庫生成指定二維碼(本例生成指定網址)

thinkPHP5引入endroid/qr-code類庫生成指定二維碼(本例生成指定網址)

我在專案開發中需要使用到的常見的一些類庫,基本都是Packagist / Composer 中國全量映象上找到,然後使用composer直接安裝。

廢話不多說開始吧!

在搜尋框中輸入endroid/qr-code,

點選第一個連結進入,

下滑找到這句話:

$ composer require endroid/qr-code

下載到本地,我這裡以c盤下載為例:

載入的檔案為vendor,下面的子目錄如下

我們需要用到的是endroid目錄。由於我們是在thinkPHP5專案下使用,所以你在你的TP5根目錄下composer該類庫,會自動載入到vendor目錄下,

我們在專案程式碼中可以直接通過use關鍵字引用使用,貼上程式碼

<?php
namespace app\subsite\controller;

use Endroid\QrCode\QrCode;

class Index extends Base
{
    function _initialize()
    {
        parent::_initialize();
    }
    /*
     * 生成二維碼圖片
     */
    public function qr_code()
    {
        $link = 'http://'.$_SERVER['HTTP_HOST'].'/subsite/index/register';
        $sha1 = sha1($link);
        $qrcode_dir = dce_dir_root . '/qrcode/' . substr($sha1, 0, 2)  .'/'. substr($sha1, 2, 3) . '/';
        if (!file_exists($qrcode_dir)) mkdir($qrcode_dir, 0777, true);
        $file_name = $qrcode_dir .$sha1 . '.png';
        header('Content-Type: image/png');
        if (is_file($file_name)) {
            echo file_get_contents($file_name);
        } else {
            $qrCode = new QrCode($link);
            echo $qrCode->writeString();
            $qrCode->writeFile($file_name);
        }
        die();
    }
}

引用就完成了,具體操作,請大家在實操!