当前位置: 首页 > news >正文

php生成个性二维码

本篇引用  QRcode  PHP QR Code download | SourceForge.net  无需composer即可生成

下载后的类文件是一个压缩包,里边包含很多文件和演示demo,我们只需要里的phpqrcode.php这一个文件就可以生成二维码了。它是一个多个类的集合文件,我们只用到了里边的QRcode的(第3091行)的png()方法

PHP环境必须开启支持GD2扩展库支持(一般情况下都是开启状态)

直接上代码  核心内容都进行了注释  

<?php
/*** Desc :* User : RoyalsZch* Date : 2023-11-07 09:29* @return*/namespace app\controller;use think\facade\Db;
use think\facade\Request;class qrCode
{public static function scerweima($url = ''){require_once 'D:\zch\testTest\tp\extend\phpqrcode\phpqrcode.php';$value = $url;                    //二维码内容$errorCorrectionLevel = 'L';    //容错级别$matrixPointSize = 5;            //生成图片大小$rootPath = root_path() . "public/uploads/qrcode";$dir = self::newDir($rootPath);//生成二维码图片$filename = $dir . time() . mt_rand(1000, 9999) . '.png';\QRcode::png($value, $filename, $errorCorrectionLevel, $matrixPointSize, 2);$QR = $filename;                //已经生成的原始二维码图片文$logo = 'C:\Users\***\Desktop\file.png';if (file_exists($logo)) {$QR = imagecreatefromstring(file_get_contents($filename));$logo = imagecreatefromstring(file_get_contents($logo));// logs('./log2.txt',$logo);$QR_width = imagesx($QR);//二维码图片宽度$QR_height = imagesy($QR);//二维码图片高度$logo_width = imagesx($logo);//logo图片宽度$logo_height = imagesy($logo);//logo图片高度$logo_qr_width = $QR_width / 3;
//            $scale = $logo_width/$logo_qr_width;
//            $logo_qr_height = $logo_height/$scale;$logo_qr_height = $logo_height/3;$from_width = ($QR_width - $logo_qr_width) / 2;//重新组合图片并调整大小imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $logo_width, $logo_height);//输出图片// Header("Content-type: image/png");
//            imagedestroy($QR);}//输出图片imagepng($QR, $filename);imagedestroy($QR);imagedestroy($logo);return $filename;
//        return '<img src="$filename" alt="使用微信扫描支付">';}public static function newDir($dir = 'qrcode'){
//按照年月日创建目录$file_path = "$dir" . '/' . date("Y") . '/' . date("m") . '/' . date("d") . '/';
//判断给定文件名是否是一个目录if (!is_dir($file_path)) mkdir($file_path, 777, true);
//        if (!is_dir($file_path)) {
//            if (mkdir($file_path, 777, true)) {
//                echo "创建递归文件夹成功";
//            } else {
//                echo "创建文件夹失败";
//            }
//        } else {
//            echo "该文件夹已经有了";
//        }return $file_path;}//调用查看结果public static function newCode(){$nowPath = '?nowPath=' . Request::domain();$willPath = 'https://www.baidu.com';$finalPath = $willPath . $nowPath;echo self::scerweima($finalPath);}//若想直接输出在浏览器中,不生成图片文件,则直接:
//QRcode::png($value,false,$errorCorrectionLevel, $matrixPointSize, 2);}
http://www.lryc.cn/news/224525.html

相关文章:

  • css排版—— 一篇优雅的文章(中英文) vs 聊天框的特别排版
  • 2022最新版-李宏毅机器学习深度学习课程-P46 自监督学习Self-supervised Learning(BERT)
  • 【MySQL习题】各个视频的平均完播率【全网最详细教学】
  • Linux Centos配置邮件发送
  • 宋浩高等数学笔记(三)微分中值定理
  • 华为认证 | 11月底这门HCIP认证即将发布!
  • U-Mail邮件系统安全登录解决方案
  • 在Java继承关系中变量访问规则
  • 11. 一文快速学懂常用工具——网络工具(下)
  • 什么GAN生成对抗网络?生成对抗网络可以干什么?
  • 采集Prestashop独立站
  • 通过一道题目带你深入了解WAF特性、PHP超级打印函数、ASCII码chr()对应表等原理[RoarCTF 2019]Easy Calc 1
  • 类直径树上贪心
  • 求职招聘小程序源码系统+社交招聘+多城市招聘 带完整搭建教程
  • Java Web 安全实战:从登录到退出
  • 08.Diffusion Model数学原理分析(下)
  • 什么样的CRM系统更适合外贸企业?
  • selenium自动化测试入门 —— 键盘鼠标事件ActionChains
  • 高级运维学习(十四)Zabbix监控(一)
  • vite + electron引入itk报错
  • 大厂面试题-MySQL为什么使用B+Tree作为索引结构
  • Tomcat的Engine容器
  • vscode绿色行数设置
  • 闪站侠洗衣洗鞋管理系统app小程序开发;
  • 【操作系统】测试一
  • 如何用sklearn对随机森林调参
  • Java中单例模式
  • 第1章 现代通信网概述
  • 99%的时间里使用的14个git命令
  • 适用于 iOS 的 10 个最佳数据恢复工具分享