首页
统计
友链
壁纸
收藏
Search
1
如何使用Git在本地搭建代码仓库及使用
790 阅读
2
抖音可爱少女DuangDuangDuang
645 阅读
3
宝塔面板开启SSL后无法访问登陆解决方案
430 阅读
4
Sublime Text 升级后报错“kill_previous”问题解决
188 阅读
5
PHP 实现识别二维码
83 阅读
默认分类
前端
Js
Css
Jquery
Vue
运维
Git
Linux
Nginx
Apache
MySql
宝塔面板
后端
Python
PHP
登录
/
注册
Search
标签搜索
Git
php
宝塔面板常用命令
github
运维
宝塔开启SSL后无法登录
自动识别
PHPzxing
Element UI
黄小嘻
累计撰写
6
篇文章
累计收到
7
条评论
首页
栏目
默认分类
前端
Js
Css
Jquery
Vue
运维
Git
Linux
Nginx
Apache
MySql
宝塔面板
后端
Python
PHP
页面
统计
友链
壁纸
收藏
搜索到
1
篇与
PHPzxing
的结果
2021-07-06
PHP 实现识别二维码
前言突然头脑风暴想写个识别二维码的接口,方便后续使用,所以就有了接下来的操作和踩坑。 ::(喷) {anote icon="fa-link" href="https://www.kuckji.cn/views/read_qr" type="secondary" content="立即体验"/} 思索一番,决定用PHP来实现,原因不必多解释,懂的都懂 ::(你懂的) ,所以就找了一下第三方扩展库,最开始找的是 php-zbarcode 的扩展,按照网上的安装步骤安装了 ImageMagick 和 zbar 但是后来吧,发现这玩意儿搞不懂,安装了没啥反应,又用宝塔面板在指定的PHP版本上进行了安装还是无果,最终还是以失败而告终。 ::(狂汗) 接下来你们以为就结束了?NO 不可能,绝对不可能!又花了一个多小时检索然后就在万能的 CSDN 找到一篇文章,里面有具体的解释和使用教程(也可以看官方文档都差不多),作者与我开始是一样的同样使用了我的第一种办法,结果是一样的(心里舒坦多了 ::(捂嘴笑) ){message type="info" content="具体的安装及使用方法请看原文章我这里就不再做说明了,(懒得码字)下面只做补充说明"/}{message type="info" content="扩展目前对中文不是很友好,二维码内容如果为中文会显示一堆 “?????”"/}补充说明(重点 ::(滑稽) 坑来了)一开始觉得会很顺利的就可以实现,可终究我错了,经过试验它却疯狂报错。于是我又开始查阅资料,才知道是 空间命名 的问题(当我找到资料时也就反应过来了,当场直接裂开 ::(心碎) ){alert type="error"}报错:Uncaught Error: Class 'PHPZxingPHPZxingDecoder'{/alert}{card-default label=" use空间命名的问题 " width="100%"}原文中没有提及use空间命名问题(可能是我孤陋寡闻,知道的请跳过),只说 use PHPZxing\PHPZxingDecoder; 这样引入即可但实际是,use空间命名的源文件,必须包含在当前PHP文件中,也就是说我们需要使用require_once()引入PHPZxingDecoder这个文件我们使用composer安装的扩展,安装好后vendor目录下有一个autoload.php文件,这个文件已经为我们引入了需要的文件,我们只需要将这个文件引入到index.php中即可<?php require_once('vendor/autoload.php'); // 引入文件 use PHPZxing\PHPZxingDecoder; $decoder = new PHPZxingDecoder(); ?>{/card-default}完整示例<?php require_once('vendor/autoload.php'); use PHPZxing\PHPZxingDecoder; $config = array( 'try_harder' => true, // 当不知道二维码的位置的时候设置为true 'multiple_bar_codes' => false, // 当需要识别多个二维码的时候设为true 'possible_formats' => '' // 要解码的格式列表,其中格式是 BarcodeFormat(可百度,下面列出部分类型) 中的任何值 'crop' => '100,200,300,300' // 裁剪图像,它只会读取裁剪的部分,设置二维码的大概位置 ); $decoder = new PHPZxingDecoder($config); $data = $decoder->decode('test2.jpg'); // 图片路径不能是Url // 使用isFound()函数检查是否有二维码存在 if($data->isFound()){ echo json_encode(array( 'ImageValue'=>$data->getImageValue(), 'Format'=>$data->getFormat(), 'Type'=>$data->getType(), 'ImagePath'=>$data->getImagePath() )); }else { echo json_encode(array( 'ErrorCode'=>$data->getImageErrorCode(), 'ErrorMessage'=>$data->getErrorMessage(), 'ImagePath'=>$data->getImagePath() )); } ?>条形码/二维码类型列表{card-default label=" BarcodeFormat " width="100%"}类型注释CODE_128表示高密度数据, 字符串可变长,符号内含校验码CODE_39\CODE_93\CODABAR可表示数字0 - 9,字符$、+、 -、还有只能用作起始/终止符的a,b,c d四个字符,可变长度,无校验位DATA_MATRIX\EAN_8\EAN_13\ITF\PDF417二维码QR_CODE二维码(常用)RSS_EXPANDED\RSS14\UPC_E统一产品代码A:7位数字,最后一位为校验位UPC_A统一产品代码A:12位数字,最后一位为校验位UPC_EAN_EXTENSION\{/card-default}
2021年07月06日
83 阅读
2 评论
4 点赞