首頁  >  文章  >  php框架  >  Tp框架如何產生二維碼

Tp框架如何產生二維碼

藏色散人
藏色散人轉載
2020-08-18 13:27:104462瀏覽

基礎環境

系統環境:Windows10 x64Tp框架如何產生二維碼

PHP整合環境:
    phpstudy
    • #PHP依賴管理工具:
    • Composer
    #(一) 安裝qr-code擴充
composer require endroid/qr-code

(二)程式碼實作(程式碼親測有效)


     * @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 . '.png';
        $qrCode = new QrCode();
        $qrCode->setText($text)
            ->setSize($size)
            ->setPadding(15)
            ->setErrorCorrection('high')
            ->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
            ->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
            ->setImageType(QrCode::IMAGE_TYPE_PNG);
        try {
            $qrCode->save($pathname);
            $str="/qrcode/code/".$n."/". $img_name . '.png';
            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 
     * @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 . '.png';
        $qrCode = new QrCode();
        $qrCode->setText($text)
            ->setSize(300)
            ->setLogo($logo)
            ->setLogoSize(60)
            ->setErrorCorrection('high')
            ->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
            ->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
            ->setImageType(QrCode::IMAGE_TYPE_PNG);
        $qrCode->save($pathname);
        $str="/qrcode/".$n."/". $img_name . '.png';
        if ($domain){
            return request()->domain().$str;
        }else{
            return $str;
        }
    }

}

                        

以上是Tp框架如何產生二維碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除