码迷,mamicode.com
首页 > Web开发 > 详细

PHP通过PHP QR Code生成二维码

时间:2014-09-16 00:24:09      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:二维码   php   二进制   条形码   手机   

1、二维码

二维码 ,又称二维条形码,它是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的,在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化等特点。

2、PHP QR Code下载地址以及案例地址

下载:http://sourceforge.net/projects/phpqrcode/files/
案例:http://phpqrcode.sourceforge.net/examples/

3、PHP QR Code实现简单案例以及参数说明

<?php 
include 'phpqrcode.php'; 
      
$value="http://www.ceshi.com";
$errorCorrectionLevel = "L";
$matrixPointSize = "4";
QRcode::png($value, false, $errorCorrectionLevel, $matrixPointSize);
?>
案例说明: 
QRcode::png($data, $filename, $errorCorrectionLevel, $matrixPointSize, $margin);
[1]PHP QR Code支持png、jpg、svg、text等格式,使用方式为QRcode::svg等格式开头。
[2]$data:表示要记录的数据,如果是存储utf-8编码的中文,最多984个。
[3]$filename:保存的图片名称
[4]$errorCorrectionLevel:纠错级别(L、M、Q、H),二维码具有容错功能,当二维码图片被遮挡一部分后,仍可以扫描出来。容错率越高,则二维码图片能被遮挡的部分越多。
[5]$matrixPointSize:每个黑点的像素
[6]$margin:图片外围的白色边框像素

5、二维码常用数据格式

我们只需要修改$data数据即可实现想要效果。
网址 (URL)
包含网址的二维码生成是大家平时最常接触到的(例如:http://www.ceshi.com),二维码识别软件能够通过 http://前缀 知道数据代表的是一个网址。使用{URLTO:www.ceshi.com} 类似的语法格式也能让识别软件认出网址。
电子邮箱地址(E-mail Address)
互联网上大家联络时基本都会用到电子邮箱。当然,二维码也可以保存电子邮箱的地址(例如zhaoxiaobo987@163.com)。它的语法格式是{mailto:zhaoxiaobo987@163.com}。

电话号码 (telephone numbers)
电话号码的二维码生成的数据格式很简单,容易理解:{tel:13161555555}。如果是固话则加上区号,需要和海外联系的朋友则需加上+86的国家代码。

联系方式 (Contact information)
适合以二维码生成方式表示的联系人数据格式有不少个标准。例如:vcard(电子名片)。不过,它的格式对于二维码来说稍嫌复杂了一些。目前,就笔者所知,市面上的安卓手机(苹果、黑莓等)一般都支持由日本的docomo公司制定的MECARD数据格式。
MECARD:N:zhaoxiaobo;ADR:beijing,china;TEL:+8613161555555;EMAIL:zhaoxiaobo987@163.com; URL:http://blog.csdn.net/zhao1234567890123456/;QQ:275620501;

BIZCARD
这种数据格式和MECARD类似,目前还没有找到具体的定义。似乎比MECARD更加简单;只能从例子中受点启发了。
BIZCARD:N:zhaoxiaobo;T:Software Engineer;C:Google;A:beijing, China;B:+8613161555555;E:zhaoxiaobo987@163.com;

短信(SMS)
语法格式:{smsto:8613161555555:你好,二维码发短信}

彩信 (MMS)
和发短信的格式类似:{mmsto:8613161555555:内容} 

地理位置 (Geographic information)
和朋友一起分享你现在的位置,无疑是个很有用的功能。例如查看google公司在美国纽约的位置:北纬40.71872,西经73.98905;高度为100米。语法格式:{geo:40.71872,-73.98905,100}

获取安卓软件
在google的安卓市场找软件,二维码也能派上用场。例如:{market://details?id=org.example.foo}


获取Wifi配置(Android)
{WIFI:T:WPA;S:mynetwork;P:mypass}。参数T(认证类型: WEP 或WPA, ‘nopass’ 代表无需认证)、S(无线网络的 SSID)、P(无线网络的密码,如果无需认证则忽略此项)、H(可选。针对隐藏了SSID的网络)。
5、PHP QR Code生成带LOGO二维码

<?php
include 'phpqrcode.php'; 
$value = $_GET['url'];//二维码内容 
$errorCorrectionLevel = 'L';//容错级别 
$matrixPointSize = 6;//生成图片大小 
//生成二维码图片 
QRcode::png($value, 'qrcode.png', $errorCorrectionLevel, $matrixPointSize, 2); 
$logo = 'ceshi.png';//准备好的logo图片 
$QR = 'qrcode.png';//已经生成的原始二维码图 
 
if ($logo !== FALSE) { 
 $QR = imagecreatefromstring(file_get_contents($QR)); 
 $logo = imagecreatefromstring(file_get_contents($logo)); 
 $QR_width = imagesx($QR);//二维码图片宽度 
 $QR_height = imagesy($QR);//二维码图片高度 
 $logo_width = imagesx($logo);//logo图片宽度 
 $logo_height = imagesy($logo);//logo图片高度 
 $logo_qr_width = $QR_width / 5; 
 $scale = $logo_width/$logo_qr_width; 
 $logo_qr_height = $logo_height/$scale; 
 $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");
ImagePng($QR);

PHP通过PHP QR Code生成二维码

标签:二维码   php   二进制   条形码   手机   

原文地址:http://blog.csdn.net/zhao1234567890123456/article/details/39300385

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!