thinkphp5框架生成二维码
二话不说,先上代码:
第一中: 不用再本地保存文件,直接在前台页面显示:
这是控制器里面的内容,哦,对啦,首先要下载SDK:.phpqrcode类文件下载,下载地址:https://sourceforge.net/projects/phpqrcode/
插件只要:下载下来的类文件是一个压缩包,里边包含很多文件和演示程序,我们只需要里边的phpqrcode.php这一个文件就可以生成二维码了。它是一个多个类的集合文件,我们需要用到里边的QRcode类(第2963行)的png()方法(第3090行)。
文件放在框架extend 文件 中 可以自己给文件夹起个名字,我的这里是 PhpQrcode 里面的文件是:phpqrcode.php
<?php
namespace app\index\controller;
use think\Controller;
use think\Loader; Loader::import('PhpQrcode.phpqrcode',EXTEND_PATH,'.php'); class Index extends Controller
{
//ajax访问
//通过链接生成二维码
public function code($url = "http://www.baidu.com")
{
$qrcode = new \QRcode(); // $qrimage = new \QRimage(); $value = $url; //二维码内容
$errorCorrectionLevel = 'H'; //容错级别
$matrixPointSize = 6; //生成图片大小 ob_start();
$qrcode::png($value,false , $errorCorrectionLevel, $matrixPointSize, 2);
// $object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2); //这里就是把生成的图片流从缓冲区保存到内存对象上,使用base64_encode变成编码字符串,通过json返回给页面。
$imageString = base64_encode(ob_get_contents()); //关闭缓冲区
ob_end_clean(); //把生成的base64字符串返回给前端
$data = array( 'code'=>200, 'data'=>$imageString );
return json($data); } }
前端文件:当然啦,我用的jquery比较老旧,所以有用jquery的自行改一下好啦:
<div id="logos">
<button onclick="changess()">点击</button>
<img src="" class="qrcode" alt="二维码展示"/> </div>
<script type="text/javascript" src="__INDEX__js/jquery.js"></script>
<script type="text/javascript"> function changess()
{
var logos = document.getElementById ('logos');
$.ajax({
type: "GET",
url: "code.html",
data: '',
dataType: "json",
success: function(r){
if (r.code==200) { //console.log(r);
var path = 'data:image/png;base64,'+r.data; //给img的sec赋值。
console.log(path);
$("#logos").html("<img src="+path+">"); logos.html("<img src="+path+">");
console.log( logos.html("<img src="+path+">"));
}else{
alert(r.err);
}
}
});
}
</script>
效果如上:
第二种方法将在下篇文章讲解。
thinkphp5框架生成二维码的更多相关文章
- thinkphp5框架生成二维码(二)
上篇已经讲过了SDK之类的,这个不再重复,有不知道的童鞋们,请去看上篇文章吧. 这里我用的方法比较老旧,大家有更好的方法,可以进行改良,还有linux服务器,记得给文件权限,否则生成的文件会失败的.大 ...
- thinkphp5动态生成二维码实例总结
thinkphp5关于动态生成二维码类库总结: 遇到的最大问题如下:我想大部分人也碰到过,所有觉得有必要总结下: thinkphp5提示找不到Qrcode类,可是自己明明都放置到了,vendor 目录 ...
- thinkphp5+qrcode生成二维码
1.下载二维码插件Phpqrcode,地址 https://sourceforge.net/projects/phpqrcode/files/,把下载的文件夹放到\thinkphp\vendor下 2 ...
- ThinkPHP框架整合phpqrcode生成二维码DEMO
ThinkPHP框架发展到今天功能已经变得是非常强大了,但是ThinkPHP框架中没有二维码相关的库,因此我们可以通过整合phpqrcode来完成生成二维码的功能.想使用phpqrcode首先就要把p ...
- 第三百二十节,Django框架,生成二维码
第三百二十节,Django框架,生成二维码 用Python来生成二维码,需要qrcode模块,qrcode模块依赖Image 模块,所以首先安装这两个模块 生成二维码保存图片在本地 import qr ...
- 十八 Django框架,生成二维码
用Python来生成二维码,需要qrcode模块,qrcode模块依赖Image 模块,所以首先安装这两个模块 生成二维码保存图片在本地 import qrcode img = qrcode.make ...
- thinkphp5生成二维码
1.运用composer下载拓展到vendor下 composer require aferrandini/phpqrcode 2.common.php 里面写生成二维码函数 <?php // ...
- libqrencode生成二维码
在生成二维码的库中QREncoder最为常见,但是由于中文字符的特殊性,生成中文的时候会出现一定的错误,所以博主改用libqrencode,是一个纯C编写的类库,支持面也更广泛. ① 下载libqre ...
- IOS开发技巧快速生成二维码
随着移动互联网的发展,二维码应用非常普遍,各大商场,饭店,水果店 基本都有二维码的身影,那么ios中怎么生成二维码呢? 下面的的程序演示了快速生成二维码的方法: 在ios里面要生成二维码,需要借助一个 ...
随机推荐
- Xcode 5.1安装插件:规范凝视生成器VVDocumenter
类似java的多行凝视! 安装过程: 1.前往GitHub下载project文件:VVDocumenter-Xcode 2.用Xcode打开project,Command + B Build成功后,能 ...
- Python 学习笔记(十五)Python类拓展(一)继承
继承 继承(Inheritance):是面向对象软件技术当中的一个概念.如果一个类别A "继承自" 另一个类B,就把这个A称为“B的子类”,而把B称为“A的父类”,也可以称“B是A ...
- 苹果IPad客户端安装测试软件
背景: 公司在开发一个App应用,需要部署在苹果IPad上进行测试,但是我负责后端开发对安装及测试相关流程不了解.经过一番学习得出以下结论: 1. 首先申请一个苹果的开发账号(一千块左右),大约能注册 ...
- Vue 源码分析——构造函数原型
在执行 npm run dev 的时候 根据script/config.js 文件中的配置 'web-full-dev': { entry: resolve('web/entry-runtime-wi ...
- P1379 八数码难题
#include<iostream> #include<bits/stdc++.h> using namespace std; #include<vector> u ...
- es6 入坑笔记(二)---函数扩展,箭头函数,扩展运算符...
函数扩展 1.函数可以有默认值 function demo( a = 10,b ){} 2.函数可以使用解构 function demo( { a = 0,b = 0 } = {} ){ } 3.函数 ...
- MQTT入门1 -- mosquitto 安装
原文链接:https://www.cnblogs.com/NickQ/p/9247638.html MQTT入门1 -- mosquitto 安装 简介: MQTT(Message Queuing T ...
- 时间戳Unix timestamp
(1)定义 Unix时间戳(Unix timestamp),或称Unix时间(Unix time).POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01 ...
- scRNA-seq genomic analysis pipline
a scRNA-seq genomic anlysis pipline .caret,.dropup>.btn>.caret{border-top-color:#000!important ...
- Myeclipse破解总结
今天安装svn,Myeclipse莫名的崩了,然后就重装,然后不知为什么一直失败...经过无数次尝试,终于成功,应该是把这个破解过程遇到的所有问题都遇到了吧.有个别细节我没尝试,但以下总结用于Myec ...