


Verwenden Sie Thinkphp3.2 in Kombination mit phpqrcode, um QR-Code zu generieren
Laden Sie zunächst phpqrcode herunter und extrahieren Sie ihn in das ThinkPHPLibraryVendor-Verzeichnis des Projekts.
Index_index.html (die Vorlage kann selbst konfiguriert werden)
尺寸大小: 边距大小: 1px 2px 3px 5px 容错级别: Low (7%) Medium (15%) Quartile (25%) High (30%) 二维码内容: 二维码logo:
Controller: IndexController.class .php
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index() { $config = array( 'maxSize' => 3145728, 'rootPath' => './upload/', 'savePath' => '', 'saveName' => array('uniqid',''), 'exts' => array('jpg', 'gif', 'png', 'jpeg'), 'autoSub' => true, 'subName' => array('date','Ymd'), ); $upload = new \Think\Upload($config); // 实例化上传类 // 上传单个文件 $info = $upload->uploadOne($_FILES['test']); if(!$info) { // 上传错误提示错误信息 $qrcode_path_new = './Public/Home/images/code'.'_'.date("Ymdhis").'.png'; $content = $_POST['content']; $matrixPointSize = $_POST['matrixPointSize']; $matrixMarginSize = $_POST['matrixMarginSize']; $errorCorrectionLevel = $_POST['errorCorrectionLevel']; makecode_no_pic($content,$qrcode_path_new,$matrixPointSize,$matrixMarginSize,$errorCorrectionLevel); $this->assign('img',$qrcode_path_new); } else { $qrcode_path = "./upload/".$info['savepath'].$info['savename']; $content = $_POST['content']; $matrixPointSize = $_POST['matrixPointSize']; $matrixMarginSize = $_POST['matrixMarginSize']; $errorCorrectionLevel = $_POST['errorCorrectionLevel']; $url = "./upload/qrcode/".date("YmdHis").".png"; makecode($qrcode_path,$content,$matrixPointSize,$matrixMarginSize,$errorCorrectionLevel,$url); $this->assign('img',$url); } $this->display(); } }
Dann erstellen Sie eine neue function.php unter dem Projekt Application/Home/Common
<?phpfunction makecode($qrcode_path,$content,$matrixPointSize,$matrixMarginSize,$errorCorrectionLevel,$url) { /** 参数详情: * $qrcode_path:logo地址 * $content:需要生成二维码的内容 * $matrixPointSize:二维码尺寸大小 * $matrixMarginSize:生成二维码的边距 * $errorCorrectionLevel:容错级别 * $url:生成的带logo的二维码地址 **/ ob_clean (); Vendor('phpqrcode.phpqrcode'); $object = new \QRcode(); $qrcode_path_new = './Public/Home/images/code'.'_'.date("Ymdhis").'.png'; //定义生成二维码的路径及名称 $object::png($content,$qrcode_path_new, $errorCorrectionLevel, $matrixPointSize, $matrixMarginSize); $QR = imagecreatefromstring(file_get_contents($qrcode_path_new)); //imagecreatefromstring:创建一个图像资源从字符串中的图像流 $logo = imagecreatefromstring(file_get_contents($qrcode_path)); $QR_width = imagesx($QR); // 获取图像宽度函数 $QR_height = imagesy($QR); //获取图像高度函数 $logo_width = imagesx($logo); // 获取图像宽度函数 $logo_height = imagesy($logo); //获取图像高度函数 $logo_qr_width = $QR_width / 4; //logo的宽度 $scale = $logo_width / $logo_qr_width; //计算比例 $logo_qr_height = $logo_height / $scale; //计算logo高度 $from_width = ($QR_width - $logo_qr_width) / 2; //规定logo的坐标位置 imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height); /** imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h ) * 参数详情: * $dst_image:目标图象连接资源。 * $src_image:源图象连接资源。 * $dst_x:目标 X 坐标点。 * $dst_y:目标 Y 坐标点。 * $src_x:源的 X 坐标点。 * $src_y:源的 Y 坐标点。 * $dst_w:目标宽度。 * $dst_h:目标高度。 * $src_w:源图象的宽度。 * $src_h:源图象的高度。 **/ Header("Content-type: image/png"); //$url:定义生成带logo的二维码的地址及名称 imagepng($QR,$url); } function makecode_no_pic($content,$qrcode_path_new,$matrixPointSize,$matrixMarginSize,$errorCorrectionLevel) { ob_clean (); Vendor('phpqrcode.phpqrcode'); $object = new \QRcode(); $object::png($content,$qrcode_path_new, $errorCorrectionLevel, $matrixPointSize, $matrixMarginSize); }
Wenn kein Bild hochgeladen ist, ist der generierte QR-Code nur ein einfacher QR-Code. Nur wenn ein Logo hochgeladen wird, wird der QR-Code mit dem Logo generiert.
Wie unten gezeigt, wird der QR-Code generiert, wenn kein Logo vorhanden ist:
Das folgende Bild lautet wie folgt: Der QR-Code, der beim Hochladen eines Bildes generiert wird:
Das obige ist der detaillierte Inhalt vonVerwenden Sie Thinkphp3.2 in Kombination mit phpqrcode, um QR-Code zu generieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

CakePHP ist ein Open-Source-MVC-Framework. Es erleichtert die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich. CakePHP verfügt über eine Reihe von Bibliotheken, um die Überlastung der häufigsten Aufgaben zu reduzieren.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.
