php二维码生成


Posted in PHP onOctober 19, 2015

本文介绍两种使用 php 生成二维码的方法。
(1)利用google生成二维码的开放接口,代码如下:

/** 
 * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 
 * @param string $data 二维码包含的信息,可以是数字、字符、二进制信息、汉字。不能混合数据类型,数据必须经过UTF-8 URL-encoded.如果需要传递的信息超过2K个字节,请使用POST方式 
 * @param int $widhtHeight 生成二维码的尺寸设置 
 * @param string $EC_level 可选纠错级别,QR码支持四个等级纠错,用来恢复丢失的、读错的、模糊的、数据。 
 *       L-默认:可以识别已损失的7%的数据 
 *       M-可以识别已损失15%的数据 
 *       Q-可以识别已损失25%的数据 
 *       H-可以识别已损失30%的数据 
 * @param int $margin 生成的二维码离图片边框的距离 
 */ 
function generateQRfromGoogle($data,$widhtHeight='150',$EC_level='L',$margin='0'){ 
 $url=urlencode($data); 
 echo '<img src="http://chart.apis.google.com/chart?chs='.$widhtHeight.'x'.$widhtHeight.'&cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.$data.'" widhtHeight="'.$widhtHeight.'" widhtHeight="'.$widhtHeight.'"/>'; 
}

使用方法:

$data='版权所有:https://3water.com'; 
generateQRfromGoogle($data);

post方法实现请求google api 生成二维码的方式:

function qrcode($width,$height,$string){ 
 $post_data=array(); 
 $post_data['cht']='qr'; 
 $post_data['chs']=$width."x".$height; 
 $post_data['chl']=$string; 
 $post_data['choe']="UTF-8"; 
 $url="http://chart.apis.google.com/chart"; 
 $data_Array=array(); 
 foreach($post_data as $key=>$value){ 
  $data_Array[]=$key.'='.$value; 
 } 
 $data=implode("&",$data_Array); 
 $ch=curl_init(); 
 curl_setopt($ch, CURLOPT_POST, 1); 
 curl_setopt($ch, CURLOPT_HEADER, 0); 
 curl_setopt($ch, CURLOPT_URL, $url);  
 curl_setopt($ch, CURLOPT_POSTFIELDS,$data); 
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
 $result=curl_exec($ch); 
 //echo "<img src =\"data:image/png;base64,".base64_encode($result)."\" >"; 注意,不写header的写法 
 return $result; 
}

使用方法:

header("Content-type:image/png"); 
$width=300; 
$height=300; 
$data='版权所有:https://3water.com';
echo qrcode($width,$height,$data);

当然生成的图片同上面是一样的。

(2)使用php QR Code类库生成二维码
注意使用该类库必须首先下载类库包,下载地址:
地址:http://phpqrcode.sourceforge.net/
下载下来的压缩包里面有很多示例,可以自行研究,下面给出一个简单的使用案例(具体参数的意思和上面大同小异):

<?php 
include "./phpqrcode.php"; 
$data='版权所有:https://3water.com'; 
$errorCorrectionLevel="L"; 
$matrixPointSize="4"; 
QRcode::png($data,false,$errorCorrectionLevel,$matrixPointSize);

以上所述就是本文的全部内容了,希望对大家熟练掌握php生产二维码能够有所帮助。

PHP 相关文章推荐
SMARTY学习手记
Jan 04 PHP
实现了一个PHP5的getter/setter基类的代码
Feb 25 PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 PHP
php使用递归计算文件夹大小
Dec 24 PHP
php中使用session防止用户非法登录后台的方法
Jan 27 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
Feb 02 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
php实现文件与16进制相互转换的方法示例
Feb 16 PHP
CI框架附属类用法分析
Dec 26 PHP
PHP htmlspecialchars_decode()函数用法讲解
Mar 01 PHP
PHP命令行与定时任务
Apr 01 PHP
部署PHP时的4个配置修改说明
Oct 19 #PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
Oct 19 #PHP
基于PHP实现假装商品限时抢购繁忙的效果
Oct 16 #PHP
php如何连接sql server
Oct 16 #PHP
Apache启动报错No space left on device: AH00023该怎么解决
Oct 16 #PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
Oct 16 #PHP
全面解读PHP的人气开发框架Laravel
Oct 15 #PHP
You might like
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
2016/08/10 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
2019/07/04 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
python利用百度AI实现文字识别功能
2018/11/27 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
Jones New York官网:美国女装品牌,受白领女性欢迎
2019/11/26 全球购物
应聘收银员个人的求职信
2013/11/30 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
幼儿园开学温馨提示
2015/07/15 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers