🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> composer 引入 `composer require endroid/qr-code` ``` ~~~ <?php namespace app\common\service; use fast\Random; use Endroid\QrCode\QrCode; use think\Exception; class QrcodeSrvice { /** * @param $text * @param int $size * @param bool $domain * @return string * @throws \Endroid\QrCode\Exceptions\ImageTypeInvalidException * @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 * @param bool $domain * @return string * @throws \Endroid\QrCode\Exceptions\DataDoesntExistsException * @throws \Endroid\QrCode\Exceptions\ImageTypeInvalidException * @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; } } } ~~~ ```