当前位置:首页 > PHP

php实现二维码

2026-02-14 06:00:42PHP

PHP 生成二维码的方法

PHP 可以通过多种方式生成二维码,以下是几种常见的方法:

使用 QR Code 库(如 endroid/qr-code)

安装 endroid/qr-code 库:

composer require endroid/qr-code

生成二维码示例代码:

require_once 'vendor/autoload.php';

use Endroid\QrCode\Builder\Builder;
use Endroid\QrCode\Encoding\Encoding;
use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelLow;
use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
use Endroid\QrCode\Writer\PngWriter;

$result = Builder::create()
    ->writer(new PngWriter())
    ->data('https://www.example.com')
    ->encoding(new Encoding('UTF-8'))
    ->errorCorrectionLevel(new ErrorCorrectionLevelLow())
    ->size(300)
    ->margin(10)
    ->roundBlockSizeMode(new RoundBlockSizeModeMargin())
    ->build();

// 直接输出二维码图像
header('Content-Type: '.$result->getMimeType());
echo $result->getString();

// 保存到文件
$result->saveToFile(__DIR__.'/qrcode.png');

使用 PHP QR Code 库

下载 PHP QR Code 库(可从 GitHub 获取):

include('phpqrcode/qrlib.php');

// 简单生成二维码
QRcode::png('https://www.example.com');

// 带参数生成
QRcode::png('https://www.example.com', 'qrcode.png', QR_ECLEVEL_L, 10, 2);

使用 Google Charts API(在线方式)

$url = urlencode('https://www.example.com');
$qrUrl = "https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=$url";
echo '<img src="'.$qrUrl.'" alt="QR Code"/>';

二维码生成参数说明

  • 尺寸:通常以像素为单位,常见尺寸为 200x200 到 500x500
  • 容错级别:影响二维码损坏时的可读性,有 L(7%)、M(15%)、Q(25%)、H(30%)四个级别
  • 边距:二维码周围的空白区域,通常为 2-4 个模块宽度
  • 数据编码:确保使用正确的字符编码(如 UTF-8)

二维码内容类型

可以生成包含以下内容的二维码:

  • 网址 URL
  • 文本信息
  • 联系方式(vCard 格式)
  • WiFi 网络配置
  • 电子邮件地址
  • 电话号码
  • 短信内容

高级功能实现

带 logo 的二维码

使用 endroid/qr-code 添加 logo:

php实现二维码

$result = Builder::create()
    ->data('https://www.example.com')
    ->size(300)
    ->logoPath(__DIR__.'/logo.png')
    ->logoResizeToWidth(50)
    ->build();

彩色二维码

$result = Builder::create()
    ->data('https://www.example.com')
    ->foregroundColor(0, 0, 0, 0)  // 黑色
    ->backgroundColor(255, 255, 255, 0)  // 白色
    ->build();

注意事项

  • 确保服务器有写入权限(如需保存文件)
  • 在线 API 方式需要网络连接
  • 二维码内容不宜过长(最多约 4000 个字符)
  • 对于敏感信息,考虑生成临时二维码或添加访问控制

标签: 二维码php
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (int…

php实现搜索功能

php实现搜索功能

实现基本的搜索功能 在PHP中实现搜索功能通常涉及数据库查询。以下是一个简单的实现方式,假设使用MySQL数据库: <?php // 连接数据库 $conn = new mysqli('loc…

php如何实现直播

php如何实现直播

实现直播功能的方法 PHP可以通过结合其他技术和工具来实现直播功能。以下是几种常见的方法: 使用流媒体服务器 配置流媒体服务器如Nginx-RTMP、Red5或Wowza。这些服务器支持RTMP协…

php 登录实现

php 登录实现

PHP 登录实现 PHP 登录功能通常包括用户认证、会话管理和安全性措施。以下是实现 PHP 登录功能的关键步骤。 数据库准备 创建一个用户表存储用户信息,通常包括用户名、密码(加密存储)和其他必要…

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…

php实现mysql

php实现mysql

PHP 连接 MySQL 的基本方法 PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。 使用 MySQLi 扩展 MySQLi 是 MySQL 的改进扩展,支持面向对…