Thinkphp使用Zxing扩展库解析二维码内容图文讲解
一、下载PHP版本的Zxing扩展库
下载地址:https://github.com/khanamiryan/php-qrcode-detector-decoder
二、使用Zxing扩展库
1、文件下载好后,直接解压,结构如下,我们只需要lib这个文件夹
2、将lib文件夹重命名为Zxing,然后打开Zxing目录下的QrReader.php文件,可以发现命名空间是Zxing
3、接下来就很简单了,把Zxing文件夹放到thnikphp的扩展目录extend里
4、报错 Fatalerror::Allowedmemorysizeof134217728bytesexhausted(triedtoallocate40bytes)in
报错原因:PHP内存不够
解决方法:在调用QrReader前,先用ini_set()方法修改内存限制大小
//修改php内存限制为1024M ini_set('memory_limit','1024M');
5、报错 CalltoundefinedfunctionZxing\Common\fill_array()
解决方法:修改Zxing目录的QrReader.php文件,载入common/customFunctions.php文件,如下:
QrReader.php完整代码:
readImage($imgSource); }else{ $image=file_get_contents($imgSource); $im=imagecreatefromstring($image); } break; caseQrReader::SOURCE_TYPE_BLOB: if($useImagickIfAvailable&&extension_loaded('imagick')){ $im=new\Imagick(); $im->readImageBlob($imgSource); }else{ $im=imagecreatefromstring($imgSource); } break; caseQrReader::SOURCE_TYPE_RESOURCE: $im=$imgSource; if($useImagickIfAvailable&&extension_loaded('imagick')){ $useImagickIfAvailable=true; }else{ $useImagickIfAvailable=false; } break; } if($useImagickIfAvailable&&extension_loaded('imagick')){ if(!$iminstanceof\Imagick){ thrownew\InvalidArgumentException('Invalidimagesource.'); } $width=$im->getImageWidth(); $height=$im->getImageHeight(); $source=newIMagickLuminanceSource($im,$width,$height); }else{ if(!is_resource($im)){ thrownew\InvalidArgumentException('Invalidimagesource.'); } $width=imagesx($im); $height=imagesy($im); $source=newGDLuminanceSource($im,$width,$height); } $histo=newHybridBinarizer($source); $this->bitmap=newBinaryBitmap($histo); $this->reader=newQRCodeReader(); } publicfunctiondecode() { try{ $this->result=$this->reader->decode($this->bitmap); }catch(NotFoundException$er){ $this->result=false; }catch(FormatException$er){ $this->result=false; }catch(ChecksumException$er){ $this->result=false; } } publicfunctiontext() { $this->decode(); if(method_exists($this->result,'toString')){ return$this->result->toString(); } return$this->result; } publicfunctiongetResult() { return$this->result; } }6、在代码里调用
//引用 useZxing\QrReader; //调用类库 $qrcode=newQrReader("二维码图片路径"); $content=$qrcode->text();到此这篇关于Thinkphp使用Zxing扩展库解析二维码内容图文讲解的文章就介绍到这了,更多相关Thinkphp使用Zxing扩展库解析二维码内容内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。