Maison > cadre php > PensezPHP > le corps du texte

Comment le framework Tp génère-t-il un code QR

藏色散人
Libérer: 2020-08-18 13:28:19
avant
4649 Les gens l'ont consulté
Ce qui suit est

Thinkphp La colonne du didacticiel sur le framework présentera la méthode de génération de codes QR pour le framework TP, j'espère que cela sera utile aux amis dans le besoin !

Comment le framework Tp génère-t-il un code QR

    Environnement de base
    • Environnement système : Windows10 x64
    • Environnement intégré PHP :
    • phpstudy
    • Outil de gestion des dépendances PHP :
    • Composer

(1) Installer l'extension qr-code

composer require endroid/qr-code
Copier après la connexion

(2) Implémentation du code (le code est valide après tests personnels)

<?php
namespace app\common\service;

use Jrk\Random;
use Endroid\QrCode\QrCode;
use think\Exception;

class QrcodeSrvice
{

    /**
     * @param $text
     * @param int $size
     * @param bool $domain
     * @return string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:生成普通二维码
     */
    public static function make_qrcode($text,$size=105,$domain=false){
        $img_name = Random::alnum(15);
        $n = date("Ym");
        $dir= app()->getRootPath()."public/qrcode/code/".$n;
        //判断目录是否存在
        if (!is_dir($dir)) {
            mkdir($dir, 0777, true);
        }
        $pathname = $dir."/" . $img_name . &#39;.png&#39;;
        $qrCode = new QrCode();
        $qrCode->setText($text)
            ->setSize($size)
            ->setPadding(15)
            ->setErrorCorrection(&#39;high&#39;)
            ->setForegroundColor(array(&#39;r&#39; => 0, &#39;g&#39; => 0, &#39;b&#39; => 0, &#39;a&#39; => 0))
            ->setBackgroundColor(array(&#39;r&#39; => 255, &#39;g&#39; => 255, &#39;b&#39; => 255, &#39;a&#39; => 0))
            ->setImageType(QrCode::IMAGE_TYPE_PNG);
        try {
            $qrCode->save($pathname);
            $str="/qrcode/code/".$n."/". $img_name . &#39;.png&#39;;
            if ($domain){
                return request()->domain().$str;
            }else{
                return $str;
            }
        } catch (\Endroid\QrCode\Exceptions\ImageTypeInvalidException $exception) {
            return "";
        }
    }


    /**
     * @param $text
     * @param $logo
     * @return string
     * @throws Exception
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:生成带logo 的二维码
     */
    public static function QrCodeWithLogo($text,$logo,$domain=false){
        if (!file_exists($logo)){
            exception("logo地址不存在");
        }
        $img_name = Random::alnum(15);
        $n = date("Ym");
        $dir= app()->getRootPath()."public/qrcode/".$n;
        //判断目录是否存在
        if (!is_dir($dir)) {
            mkdir($dir, 0777, true);
        }
        $pathname = $dir."/" . $img_name . &#39;.png&#39;;
        $qrCode = new QrCode();
        $qrCode->setText($text)
            ->setSize(300)
            ->setLogo($logo)
            ->setLogoSize(60)
            ->setErrorCorrection(&#39;high&#39;)
            ->setForegroundColor(array(&#39;r&#39; => 0, &#39;g&#39; => 0, &#39;b&#39; => 0, &#39;a&#39; => 0))
            ->setBackgroundColor(array(&#39;r&#39; => 255, &#39;g&#39; => 255, &#39;b&#39; => 255, &#39;a&#39; => 0))
            ->setImageType(QrCode::IMAGE_TYPE_PNG);
        $qrCode->save($pathname);
        $str="/qrcode/".$n."/". $img_name . &#39;.png&#39;;
        if ($domain){
            return request()->domain().$str;
        }else{
            return $str;
        }
    }

}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal