首页 > Web开发 > 详细

php解析识别二维码内容

时间:2019-09-07 10:50:35      阅读:156      评论:0      收藏:0      [点我收藏+]

使用框架ThinkPHP5

我在网上找了一些方法,比较具有参考意义的帖子如下:http://gitlab.szwhg.chaoxing.com/chaoxing/dingxiwhg/tree/master/vendor/khanamiryan/qrcode-detector-decoder

这种方法是使用composer来安装的,我简单说一下流程:

  使用composer命令

composer require khanamiryan/qrcode-detector-decoder

  安装好之后使用方法如下:

require __DIR__ . "/vendor/autoload.php";  
$qrcode = new QrReader(图片地址);
$text = $qrcode->text(); //返回二维码的内容

 但是,我用的时候,composer镜像地址被墙,无法下载,只能自己把这个类库下载下来,然后使用,下面就是相关经验:

首先将khanamiryan/qrcode-detector-decoder这个文件下载下来放到项目的vendor目录里面,下载链接:http://gitlab.szwhg.chaoxing.com/chaoxing/dingxiwhg/tree/master/vendor/khanamiryan/qrcode-detector-decoder

如下图:

技术分享图片

 

 因为我们是手动复制扩展类库过去的,所以需要在vendor加一些代码,如下:

1.打开vendor/composer/autoload_classmap.php,添加如下代码:

<?php

// autoload_classmap.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    QrReader => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/QrReader.php,
    Zxing\\Binarizer => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/Binarizer.php,
    Zxing\\BinaryBitmap => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/BinaryBitmap.php,
    Zxing\\ChecksumException => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/ChecksumException.php,
    Zxing\\Common\\BitArray => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/BitArray.php,
    Zxing\\Common\\BitMatrix => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/BitMatrix.php,
    Zxing\\Common\\BitSource => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/BitSource.php,
    Zxing\\Common\\CharacterSetECI => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/CharacterSetEci.php,
    Zxing\\Common\\CharacterSetEci\\AbstractEnum\\AbstractEnum => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/AbstractEnum.php,
    Zxing\\Common\\DecoderResult => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/DecoderResult.php,
    Zxing\\Common\\DefaultGridSampler => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/DefaultGridSampler.php,
    Zxing\\Common\\DetectorResult => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/DetectorResult.php,
    Zxing\\Common\\Detector\\MathUtils => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/detector/MathUtils.php,
    Zxing\\Common\\Detector\\MonochromeRectangleDetector => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/detector/MonochromeRectangleDetector.php,
    Zxing\\Common\\GlobalHistogramBinarizer => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/GlobalHistogramBinarizer.php,
    Zxing\\Common\\GridSampler => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/GridSampler.php,
    Zxing\\Common\\HybridBinarizer => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/HybridBinarizer.php,
    Zxing\\Common\\PerspectiveTransform => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/PerspectiveTransform.php,
    Zxing\\Common\\Reedsolomon\\GenericGF => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/GenericGF.php,
    Zxing\\Common\\Reedsolomon\\GenericGFPoly => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/GenericGFPoly.php,
    Zxing\\Common\\Reedsolomon\\ReedSolomonDecoder => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/ReedSolomonDecoder.php,
    Zxing\\Common\\Reedsolomon\\ReedSolomonException => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/ReedSolomonException.php,
    Zxing\\FormatException => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/FormatException.php,
    Zxing\\GDLuminanceSource => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/GDLuminanceSource.php,
    Zxing\\IMagickLuminanceSource => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/IMagickLuminanceSource.php,
    Zxing\\LuminanceSource => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/LuminanceSource.php,
    Zxing\\NotFoundException => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/NotFoundException.php,
    Zxing\\PlanarYUVLuminanceSource => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/PlanarYUVLuminanceSource.php,
    Zxing\\Qrcode\\Decoder\\BitMatrixParser => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/BitMatrixParser.php,
    Zxing\\Qrcode\\Decoder\\DataBlock => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataBlock.php,
    Zxing\\Qrcode\\Decoder\\DataMask => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
    Zxing\\Qrcode\\Decoder\\DataMask000 => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
    Zxing\\Qrcode\\Decoder\\DataMask001 => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
    Zxing\\Qrcode\\Decoder\\DataMask010 => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
    Zxing\\Qrcode\\Decoder\\DataMask011 => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
    Zxing\\Qrcode\\Decoder\\DataMask100 => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
    Zxing\\Qrcode\\Decoder\\DataMask101 => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
    Zxing\\Qrcode\\Decoder\\DataMask110 => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
    Zxing\\Qrcode\\Decoder\\DataMask111 => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
    Zxing\\Qrcode\\Decoder\\DecodedBitStreamParser => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DecodedBitStreamParser.php,
    Zxing\\Qrcode\\Decoder\\Decoder => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Decoder.php,
    Zxing\\Qrcode\\Decoder\\ECB => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Version.php,
    Zxing\\Qrcode\\Decoder\\ECBlocks => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Version.php,
    Zxing\\Qrcode\\Decoder\\ErrorCorrectionLevel => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/ErrorCorrectionLevel.php,
    Zxing\\Qrcode\\Decoder\\FormatInformation => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/FormatInformation.php,
    Zxing\\Qrcode\\Decoder\\Mode => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Mode.php,
    Zxing\\Qrcode\\Decoder\\Version => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Version.php,
    Zxing\\Qrcode\\Detector\\AlignmentPattern => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/AlignmentPattern.php,
    Zxing\\Qrcode\\Detector\\AlignmentPatternFinder => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/AlignmentPatternFinder.php,
    Zxing\\Qrcode\\Detector\\Detector => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/Detector.php,
    Zxing\\Qrcode\\Detector\\FinderPattern => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/FinderPattern.php,
    Zxing\\Qrcode\\Detector\\FinderPatternFinder => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/FinderPatternFinder.php,
    Zxing\\Qrcode\\Detector\\FinderPatternInfo => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/FinderPatternInfo.php,
    Zxing\\Qrcode\\QRCodeReader => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/qrcode/QRCodeReader.php,
    Zxing\\RGBLuminanceSource => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/RGBLuminanceSource.php,
    Zxing\\Reader => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/Reader.php,
    Zxing\\ReaderException => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/ReaderException.php,
    Zxing\\Result => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/Result.php,
    Zxing\\ResultPoint => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/ResultPoint.php,
);

 2.打开vendor/composer/autoload_files.php,添加如下代码:

<?php

// autoload_files.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    626dcc41390ebdaa619faa02d99943b0 => $vendorDir . /khanamiryan/qrcode-detector-decoder/lib/common/customFunctions.php,
);

3.打开vendor/composer/autoload_static.php,添加如下代码:

<?php

// autoload_static.php @generated by Composer

namespace Composer\Autoload;

class ComposerStaticInit03c3364a4f1922a40ddcc934d3140c97
{
    public static $files = array (
  626dcc41390ebdaa619faa02d99943b0 => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/customFunctions.php,
    );
public static $classMap = array (
         QrReader => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/QrReader.php,
        Zxing\\Binarizer => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/Binarizer.php,
        Zxing\\BinaryBitmap => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/BinaryBitmap.php,
        Zxing\\ChecksumException => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/ChecksumException.php,
        Zxing\\Common\\BitArray => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/BitArray.php,
        Zxing\\Common\\BitMatrix => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/BitMatrix.php,
        Zxing\\Common\\BitSource => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/BitSource.php,
        Zxing\\Common\\CharacterSetECI => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/CharacterSetEci.php,
        Zxing\\Common\\CharacterSetEci\\AbstractEnum\\AbstractEnum => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/AbstractEnum.php,
        Zxing\\Common\\DecoderResult => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/DecoderResult.php,
        Zxing\\Common\\DefaultGridSampler => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/DefaultGridSampler.php,
        Zxing\\Common\\DetectorResult => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/DetectorResult.php,
        Zxing\\Common\\Detector\\MathUtils => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/detector/MathUtils.php,
        Zxing\\Common\\Detector\\MonochromeRectangleDetector => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/detector/MonochromeRectangleDetector.php,
        Zxing\\Common\\GlobalHistogramBinarizer => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/GlobalHistogramBinarizer.php,
        Zxing\\Common\\GridSampler => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/GridSampler.php,
        Zxing\\Common\\HybridBinarizer => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/HybridBinarizer.php,
        Zxing\\Common\\PerspectiveTransform => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/PerspectiveTransform.php,
        Zxing\\Common\\Reedsolomon\\GenericGF => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/GenericGF.php,
        Zxing\\Common\\Reedsolomon\\GenericGFPoly => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/GenericGFPoly.php,
        Zxing\\Common\\Reedsolomon\\ReedSolomonDecoder => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/ReedSolomonDecoder.php,
        Zxing\\Common\\Reedsolomon\\ReedSolomonException => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/ReedSolomonException.php,
        Zxing\\FormatException => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/FormatException.php,
        Zxing\\GDLuminanceSource => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/GDLuminanceSource.php,
        Zxing\\IMagickLuminanceSource => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/IMagickLuminanceSource.php,
        Zxing\\LuminanceSource => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/LuminanceSource.php,
        Zxing\\NotFoundException => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/NotFoundException.php,
        Zxing\\PlanarYUVLuminanceSource => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/PlanarYUVLuminanceSource.php,
        Zxing\\Qrcode\\Decoder\\BitMatrixParser => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/BitMatrixParser.php,
        Zxing\\Qrcode\\Decoder\\DataBlock => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataBlock.php,
        Zxing\\Qrcode\\Decoder\\DataMask => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
        Zxing\\Qrcode\\Decoder\\DataMask000 => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
        Zxing\\Qrcode\\Decoder\\DataMask001 => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
        Zxing\\Qrcode\\Decoder\\DataMask010 => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
        Zxing\\Qrcode\\Decoder\\DataMask011 => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
        Zxing\\Qrcode\\Decoder\\DataMask100 => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
        Zxing\\Qrcode\\Decoder\\DataMask101 => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
        Zxing\\Qrcode\\Decoder\\DataMask110 => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
        Zxing\\Qrcode\\Decoder\\DataMask111 => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DataMask.php,
        Zxing\\Qrcode\\Decoder\\DecodedBitStreamParser => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/DecodedBitStreamParser.php,
        Zxing\\Qrcode\\Decoder\\Decoder => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Decoder.php,
        Zxing\\Qrcode\\Decoder\\ECB => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Version.php,
        Zxing\\Qrcode\\Decoder\\ECBlocks => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Version.php,
        Zxing\\Qrcode\\Decoder\\ErrorCorrectionLevel => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/ErrorCorrectionLevel.php,
        Zxing\\Qrcode\\Decoder\\FormatInformation => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/FormatInformation.php,
        Zxing\\Qrcode\\Decoder\\Mode => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Mode.php,
        Zxing\\Qrcode\\Decoder\\Version => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/decoder/Version.php,
        Zxing\\Qrcode\\Detector\\AlignmentPattern => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/AlignmentPattern.php,
        Zxing\\Qrcode\\Detector\\AlignmentPatternFinder => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/AlignmentPatternFinder.php,
        Zxing\\Qrcode\\Detector\\Detector => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/Detector.php,
        Zxing\\Qrcode\\Detector\\FinderPattern => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/FinderPattern.php,
        Zxing\\Qrcode\\Detector\\FinderPatternFinder => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/FinderPatternFinder.php,
        Zxing\\Qrcode\\Detector\\FinderPatternInfo => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/detector/FinderPatternInfo.php,
        Zxing\\Qrcode\\QRCodeReader => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/qrcode/QRCodeReader.php,
        Zxing\\RGBLuminanceSource => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/RGBLuminanceSource.php,
        Zxing\\Reader => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/Reader.php,
        Zxing\\ReaderException => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/ReaderException.php,
        Zxing\\Result => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/Result.php,
        Zxing\\ResultPoint => __DIR__ . /.. . /khanamiryan/qrcode-detector-decoder/lib/ResultPoint.php,
    );
}

 

至此,大功告成,调用方法如下:

<?php
namespace app\index\controller;

use think\Controller;


class Index
{

   fuction test(){    

    require ROOT_PATH."/vendor/autoload.php";

    $qrcode = new \QrReader(N:\phpStudy\WWW\qukuaigou\public\tgcode\1.png);

   echo $qrcode->text();
  }
}

 

以上是我个人亲测可行,转载麻烦注明出处,谢谢!

php解析识别二维码内容

原文:https://www.cnblogs.com/sky-yu/p/11479071.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!