目前比较流行的二维码的生成

简介: 最近比较流行二维码,自己百度了一下发现有一个很不错的实现方法使用谷歌接口http://chart.apis.google.com(gg的图标api接口) QRcode是二维码的一种。QRcode可以存储最多4296个字母数字类型的任意文本。

最近比较流行二维码,自己百度了一下发现有一个很不错的实现方法使用谷歌接口http://chart.apis.google.com(gg的图标api接口)

QRcode是二维码的一种。QRcode可以存储最多4296个字母数字类型的任意文本。这些文本可以是任何内容,例如,网址、联系信息、电话号码(具体科查看二维码数据格式)。QR code存储的信息可以被安装有适当软件的光学设备读取。这种设备既可以是专用的QR code读取器也可以是手机。

参数解释
http://chart.apis.google.com/chart? : 调用 Google 图表 API
  1. cht=qr
    这个是必需的,告诉 API ,你需要生成的是二维码。
  2. chs=<width>x<height>
    这个同样是必需的,告诉 API ,你需要生成的二维码的尺寸。
  3. chl=<data>
    这个还是必需的,用来告诉 API 二维码所包含的信息。可以是数字、字符数字、字符、二进制信息、汉字。不能混合数据类型。数据必须经过UTF-8 URL-encoded。如果需要传递的信息超过2K个字节,请使用POST方式。
  4. choe=<output_encoding>
    终于来了个不是必须的,这个是用来声明生成的二维码所包含信息的编码,默认是 UTF-8 ;其他可选编码是 Shift_JIS 、 ISO-8859-1
  5. chld=<error_correction_level>|<margin>
    可选 纠错等级。QR码支持四个等级的纠错,用来恢复丢失的、读错的、模糊的、数据。下面是可选的值:L-(默认)可以识别已损失7%的数据;M-可以识别已损失15%的数据;Q-可以识别已损失25%的数据;H-可以识别已损失30%的数据。margin 是指生成的二维码离图片边框的距离。

QR码是方形的,有相同的长和宽。QR码的大小是固定的:从21到177的长/宽,每次递增4个像素点。每个配置被称为一个等级。长和宽越大,存储的信息就越多。下面是版本摘要:

  • 等级为1的QR码长和宽分别为21个像素,最多可以存储25个字母数字和字符。
  • 等级为2的QR码长和宽分别为25个像素,最多可以存储47个字母数字和字符。
  • …以此类推 。

Chart API会根据你将存储的信息的大小来决定使用哪个等级的QR码。最棒的QR码阅读器可以读取等级为40的QR码中存储的信息。然而通常来说移动设备最多可以读取等级为4的QR码中存储的信息。

 

以下是一个简单的测试:

输入以下信息到IE地址栏:

http://chart.apis.google.com/chart?cht=qr&chs=100x100&chl=php淮北

就可以得到一个二维码:

下面使用php做成web版的
很贴心的是这个api支持get和post方式提交
关于VCard!!!相关介绍如下..
http://baike.baidu.com/view/495045.htm
<?php

$vname = $_POST['name'];
$vtel = $_POST['tel'];

//判断有没有提交名片信息,要不要调用接口显示
if($vname&&$vtel){
 $chl = "BEGIN:VCARD\nVERSION:3.0". //vcard头信息
   "\nFN:$vname".
   "\nTEL:$vtel".
   "\nEND:VCARD"; //vcard尾信息
 echo "<img src='http://chart.apis.google.com/chart?cht=qr&&chs=300×300&chl=".urlencode($chl)."' />"; //要对内容urlencode()
}

?>

<form method=‘POST’>
姓名:<input type='text' name='name' /><br/>
电话:<input type='text' name='tel' /><br/>
<input type='submit' value='create QR'>
</form>
需要注意的是,不要忘记文件要用utf-8编码,且声明META也是采用utf8,这是api的要求
<metahttp-equiv="content-type"content="text/html;charset=utf-8"/>

看看效果:


目录
相关文章
|
SQL 数据格式 XML
sql的with as高效语法
1 . with as用法说明 with a as (select * from test) select * from a; 其实就是把一大堆重复用到的SQL语句放在with as 里面,取一个别名,后面的查询就可以用它 这样对于大批量的SQL语句起到一个优化的作用,而且清楚明了 2. WITH AS的含义     WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。
2521 0
使用PHP QR Code生成二维码
HP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址: http://phpqrcode.sourceforge.net/ 下载官网提供的类库后,只需要使用phpqrcode.php就可以生成二维码了,当然您的PHP环境必须开启支持GD2。
1792 0
真正解决:gpg --verify sig: 无法检查签名:找不到公钥
真正解决:gpg --verify sig: 无法检查签名:找不到公钥
245 0
|
监控 安全 关系型数据库
“拖库”防不胜防,如何早做预防?
近期有消息爆出某酒店数据库被拖库,数据主要包括注册资料、酒店入住登记信息以及开房记录。 此次事件涉及用户信息十分敏感,后续连串反应将造成的损失难以估计。我们在思考如何保护自己的信息安全同时,更要思考企业如何保证信息安全,做好安全加固,避免千丈之堤,溃于蚁穴。
4503 0
fbh
|
关系型数据库 MySQL 数据库
Mysql软删除
所谓软删除(Soft Deleting),即在删除数据表中的数据时,并不直接将其从数据表中删除,而是将其标志为删除,即在每张表中设置一个删除字段(如:IsDeleted)等,默认情况下其值为0,及未删除状态;当需要将数据删除时,则将此字段更新为1。
fbh
2327 0
|
存储 SQL 关系型数据库
MySQL 建表为啥设置自增 id?用流水号当主键不正好么?
本文主要通过查阅资料,了解为什么要设置一个和业务无关的自增 id 用来当做主键,很多内容比较浅显,比如 InnoDB 的 B+ 树,页分裂及页合并,插入过程等都没有进行深入研究,有兴趣的小伙伴可以更深入的研究下。 同时在建表时除了要设置一个自增 id 用来当做主键,小伙伴们在业务开发过程中是否也会遇到一种情况:用户的注销,数据的删除等都是进行的逻辑删除,而不是物理删除。 本篇文章介绍比较简陋,不足之处,希望大家多多指正。
525 0
|
缓存 算法 Java
底层原理:垃圾回收算法是如何设计的?
理解Java虚拟机垃圾回收机制的底层原理,是成为一个高级Java开发者的基本功。本文从底层的垃圾回收算法开始,着重去阐释不同垃圾回收器在算法设计和实现时的一些技术细节,去探索「why」这一部分,通过对比不同的垃圾回收算法和其实现,进一步感知目前垃圾回收的发展脉络。
12978 2
底层原理:垃圾回收算法是如何设计的?