TP qrcode生成二维码

方法一

下载qrcode类

官方地址:https://sourceforge.net/projects/phpqrcode/

放到第三方类库

    //生成二维码
    function qrcode($content){

        //引入phpqrcode类库文件
        vendor('phpqrcode.phpqrcode');
        $value = $content;         //二维码内容
        $errorCorrectionLevel = 'L';  //容错级别
        $matrixPointSize = 5;      //生成图片大小

         // 判断是否有这个文件夹  没有的话就创建一个
        if(!is_dir("qrcode")){
        // 创建文件加
            mkdir("qrcode");
        }

         // 设置二维码图片名称,以及存放的路径
        $filename = 'qrcode/'.time().rand(10000,9999999).'.png';
      
        // 使用类库生成二维码
        QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);

        //  //如果需要转换成base64数据,解开下面这行注释即可
        //  $image_data = chunk_split(base64_encode(fread(fopen($filename, 'r'), filesize($filename))));
        return $filename; 
    } 

方法二

composer 安装

composer require endroid/qrcode

引入类库

use Endroid\QrCode\QrCode;

  

封装函数

    function qrcode($url,$logo,$size=30,$name='',$fontsize=16)
    {
        $log = true;
        $qrCode=new QrCode();
        $path = time().mt_rand(0000,9999).'.jpg';
        //加上logo
        if($log ==true){
            $qrCode->setLogoPath($logo);
            $qrCode->setLogoWidth(90);
        }
        $qrCode->setText($url)
            ->setSize($size)//大小
            ->setLabelFontPath(VENDOR_PATH.'endroid\qrcode\assets\noto_sans.otf')
            ->setErrorCorrectionLevel('high')
            ->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
            ->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
            ->setLabel($name)
            ->setLabelFontSize($fontsize);
        $qrCode->writeFile($path);

        $qrCode->writeFile($path);
        header('Content-Type: '.$qrCode->getContentType());
        echo $qrCode->writeString();
        exit;
    }

 

posted @ 2021-02-04 10:11  孤陌  阅读(433)  评论(0编辑  收藏  举报