搜尋
首頁後端開發php教程PHP生成二维码_PHP教程

PHP生成二维码_PHP教程

Jul 13, 2016 am 10:29 AM
web開發企業安全資訊科技安全軟體資料庫行動開發系統安全網站安全網路安全網路科技軟體開發

参数说明:

 
cht=qr:必要参数,固定值,表明要生成二维码
 
chs=x:必要参数,生成二维码尺寸,单位是像素,目前生成的二维码都是正方形的,所以两个宽高值都设置为一样的值
 
chl=:必要参数,生成二维码包含的信息,可以是数字、字符、二进制信息、汉字。不能混合数据类型,数据必须经过UTF-8 URL-encoded.如果需要传递的信息超过2K个字节,需使用POST方式
 
choe=:可选参数,编码格式。包括UTF-8/Shift_JIS/ISO-8859-1三个选项,默认为UTF-8。
 
chld=|:可选参数,
 
  error_correction_level:容错级别(共分四个等级,L-默认:可以识别已损失的7%的数据;M-可以识别已损失15%的数据;Q-可以识别已损失25%的数据;H-可以识别已损失30%的数据)
 
  margin:生成的二维码离图片边框的距离
 
 
 
例一:扫描二维码打开网址(API)
 
复制代码
//二维码信息,用urlencode编码
$data = urlencode('http://www.baidu.com');
//生成二维码尺寸
$size = '300x300';
//完整的API地址
$qrurl = "http://chart.googleapis.com/chart?chs=$size&cht=qr&chl=$data&chld=L|1&choe=UTF-8";
//获取二维码
$qrcode = file_get_contents($qrurl);
//输出图片
header('Content-type: image/png');
echo $qrcode;
复制代码
 在打开一个网站之后,我们要来实现归初的目的,扫描二维码,将企业信息导入通讯录,即在二维码中包含一个名片信息,其实二维码说白了就是将一堆信息转换为图片的形式表达,而这堆信息到底是什么样子的它并不关心,真正关心这些信息的是扫描二维码的工具,以上面的例子来说,当你用微信扫描二维码后,微信读取到二维码中储存的数据,然后尝试开始辨别它,当它发现内容是百度的网址时便使用浏览器打开它,同样的当它发现内容是一堆简单的文本数据时便以文本的形式来显示,同样的微信还可以辨别出二维码的内容是不是一个 vcard 格式的电子名片,我们的手机通讯录导入导出的时候大多是这种格式,所以我们可以直接在二维码中包含一个标准的 vcard 电子名片,这样就可以让扫描工具将它识别为通讯录。
 
复制代码
vcard 格式参考如下:
 
BEGIN:VCARD
VERSION:3.0
FN:用户名
TEL;CELL;VOICE:18858140621
TEL;WORK;VOICE:0358-2157466
TEL;WORK;FAX:0358-2157466
EMAIL;PREF;INTERNET:lzw#lzw.me
URL:http://lzw.me
orG:志文工作室
ROLE:产品部
TITLE:CTO
ADR;WORK;POSTAL:北京市朝阳区北四环中路35号;100101
REV:2012-12-27T08:30:02Z
END:VCARD
    
如果你想更详细的定制所需要的格式,请百度 vcard 的格式标准。
复制代码
 例二:生成一个名片二维码(API)
 
复制代码
//构建一个 vcard 格式数据
$vcard = 
    "BEGIN:VCARD".
    "\nVERSION:3.0".
    "\nFN:小编络络".
    "\nTEL;CELL;VOICE:18858140621".
    "\nTEL;WORK;VOICE:0358-2157466".
    "\nEMAIL:luoluo@qq.com".
    "\nURL:http://www.baidu.com".
    "\nADR:浙江省杭州市滨江区".
    "\nEND:VCARD";
 
//二维码信息,用urlencode编码
$data = urlencode($vcard);
//生成二维码尺寸
$size = '300x300';
//完整的API地址
$qrurl = "http://chart.googleapis.com/chart?chs=$size&cht=qr&chl=$data&chld=L|1&choe=UTF-8";
//获取二维码
$qrcode = file_get_contents($qrurl);
//输出图片
header('Content-type: image/png');
echo $qrcode;
复制代码
 到此为止我们归初的目的已经基本实现,但实际使用中,由于直接将上述拼装好的 url 加到了 img 标签的 src 属性,结果出了点小问题,由于我们的名片信息比较多,导致了二维码生成错误,在本文开头已经用红色字体标出,get 方式最多只能传递 2K 大的数据,大于 2K 数据时我们需要使用 POST 请求,所以在实际使用中,可以先在程序中通过 POST 方式获取二维码并保存为本地图片,之后直接调用本地图片即可。
 
 
 
方法二:使用 PHP QR CODE 生成二维码
 
官方主页:http://phpqrcode.sourceforge.net
 
下载地址:http://sourceforge.net/projects/phpqrcode/
 
使用方法:QRcode::png($data, $filename , $errorCorrectionLevel, $matrixPointSize, $margin );
 
    * $data 数据   
    * $filename 生成二维码保存路径,如果为 false 直接输出到浏览器  
    *$errorCorrectionLevel 错误处理级别  L、M、Q、H;同谷歌 API 中纠错级别
    * $matrixPointSize 每个黑点的像素   
    * $margin 图片外围的白色边框像素
 
 
 
例三:扫描二维码打开网址(phpqrcode)
 
复制代码
 
// 包含 qrlib.php 或 phpqrcode.php 
// 包含 qrlib.php 需要同其它文件放到一起; phpqrcode.php 是合并后版本,只需要包含这个文件,但生成的图片速度慢而且不太准确
include('./phpqrcode/qrlib.php');
 
// 二维码数据
$data = 'http://www.111cn.net';
 
// 纠错级别:L、M、Q、H
$errorCorrectionLevel = 'L';
 
// 点的大小:1到10
$matrixPointSize = 5;
 
QRcode::png($data, false, $errorCorrectionLevel, $matrixPointSize, 2);
复制代码
 
 
 例二:生成一个名片二维码(phpqrcode)
 
复制代码
// 包含 qrlib.php 或 phpqrcode.php
include('./phpqrcode/qrlib.php');
// 构建 vcard 数据
$vcard = 
    "BEGIN:VCARD".
    "\nVERSION:3.0".
    "\nFN:王歌".
    "\nTEL;CELL;VOICE:18858140621".
    "\nTEL;WORK;VOICE:0358-2157466".
    "\nEMAIL:wang@qq.com".
    "\nURL:http://www.mailuow.com".
    "\nADR:浙江省杭州市滨江区江虹路1750号".
    "\nEND:VCARD";
 
// 纠错级别:L、M、Q、H
$errorCorrectionLevel = 'L';
 
// 点的大小:1到10
$matrixPointSize = 4;
 
QRcode::png($vcard, false, $errorCorrectionLevel, $matrixPointSize, 2);
 
  

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/771403.htmlTechArticle参数说明: cht=qr:必要参数,固定值qr,表明要生成二维码 chs=widthxheight:必要参数,生成二维码尺寸,单位是像素,目前生成的二维码都是...
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP和Python:解釋了不同的範例PHP和Python:解釋了不同的範例Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP和Python:深入了解他們的歷史PHP和Python:深入了解他們的歷史Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

在PHP和Python之間進行選擇:指南在PHP和Python之間進行選擇:指南Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP和框架:現代化語言PHP和框架:現代化語言Apr 18, 2025 am 12:14 AM

PHP在現代化進程中仍然重要,因為它支持大量網站和應用,並通過框架適應開發需求。 1.PHP7提升了性能並引入了新功能。 2.現代框架如Laravel、Symfony和CodeIgniter簡化開發,提高代碼質量。 3.性能優化和最佳實踐進一步提升應用效率。

PHP的影響:網絡開發及以後PHP的影響:網絡開發及以後Apr 18, 2025 am 12:10 AM

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP類型提示如何起作用,包括標量類型,返回類型,聯合類型和無效類型?PHP類型提示如何起作用,包括標量類型,返回類型,聯合類型和無效類型?Apr 17, 2025 am 12:25 AM

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP如何處理對象克隆(克隆關鍵字)和__clone魔法方法?PHP如何處理對象克隆(克隆關鍵字)和__clone魔法方法?Apr 17, 2025 am 12:24 AM

PHP中使用clone關鍵字創建對象副本,並通過\_\_clone魔法方法定制克隆行為。 1.使用clone關鍵字進行淺拷貝,克隆對象的屬性但不克隆對象屬性內的對象。 2.通過\_\_clone方法可以深拷貝嵌套對象,避免淺拷貝問題。 3.注意避免克隆中的循環引用和性能問題,優化克隆操作以提高效率。

PHP與Python:用例和應用程序PHP與Python:用例和應用程序Apr 17, 2025 am 12:23 AM

PHP適用於Web開發和內容管理系統,Python適合數據科學、機器學習和自動化腳本。 1.PHP在構建快速、可擴展的網站和應用程序方面表現出色,常用於WordPress等CMS。 2.Python在數據科學和機器學習領域表現卓越,擁有豐富的庫如NumPy和TensorFlow。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境