您好,欢迎来到网站建设_网页设计制作公司_高端网站建设_模板建站_欣欣仿站



模板搜索:搜索
热门搜索: ALL房产金融汽车室内设计

RecognizeIdcard - 身份证识别(php亲测可以执行的版本) 2023-04-29 21:13:36

当前位置: >首页>新闻列表>RecognizeIdcard - 身份证识别(php亲测可以执行的版本)

        阿里云RecognizeIdcard - 身份证识别的这个PHP的sdk版本运行的时候,总是不显示,对php新手来说,就是一头雾水,无从下手。这里给大家做一个讲解。

        首先,我们看下php下载下来的SDK。 默认的他包含autoload和src下面的sample.php 这两个文件。当然其他文件,我们暂时不看。autoload.php这个就不用管他了。他是一过自动加载的功能的文件。主要就是src下面的sample.php 这个。我们把他们的这个SDK放到web目录之后,你配置好了php环境就可以运行了。但是这个时候,我们访问这个文件的时候,他是不显示的。这里,我们先看sample.php 文件的代码。

        

<?php

// This file is auto-generated, don't edit it. Thanks.
namespaceAlibabaCloud\SDK\Sample;

use AlibabaCloud\SDK\Ocrapi\V20210707\Ocrapi;
use AlibabaCloud\Tea\Utils\Utils;
use AlibabaCloud\Tea\Console\Console;

use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Ocrapi\V20210707\Models\RecognizeIdcardRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;

classSample {

    /**
     * 使用AK&SK初始化账号Client
     * @paramstring $accessKeyId
     * @paramstring $accessKeySecret
     * @returnOcrapi Client
     */
    publicstaticfunctioncreateClient($accessKeyId, $accessKeySecret){
        $config = newConfig([
            // 必填,您的 AccessKey ID
            "accessKeyId" => $accessKeyId,
            // 必填,您的 AccessKey Secret
            "accessKeySecret" => $accessKeySecret
        ]);
        // 访问的域名
        $config->endpoint = "ocr-api.cn-hangzhou.aliyuncs.com";
        returnnewOcrapi($config);
    }

    /**
     * 使用STS鉴权方式初始化账号Client,推荐此方式。本示例默认使用AK&SK方式。
     * @paramstring $accessKeyId
     * @paramstring $accessKeySecret
     * @paramstring $securityToken
     * @returnOcrapi Client
     */
    publicstaticfunctioncreateClientWithSTS($accessKeyId, $accessKeySecret, $securityToken){
        $config = newConfig([
            // 必填,您的 AccessKey ID
            "accessKeyId" => $accessKeyId,
            // 必填,您的 AccessKey Secret
            "accessKeySecret" => $accessKeySecret,
            // 必填,您的 Security Token
            "securityToken" => $securityToken,
            // 必填,表明使用 STS 方式
            "type" => "sts"
        ]);
        // 访问的域名
        $config->endpoint = "ocr-api.cn-hangzhou.aliyuncs.com";
        returnnewOcrapi($config);
    }

    /**
     * @paramstring[] $args
     * @returnvoid
     */
    publicstaticfunctionmain($args){
        // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/311677.html
        $client = self::createClient("ACCESS_KEY_ID", "ACCESS_KEY_SECRET");
        $recognizeIdcardRequest = newRecognizeIdcardRequest([]);
        $runtime = newRuntimeOptions([]);
        $resp = $client->recognizeIdcardWithOptions($recognizeIdcardRequest, $runtime);
        Console::log(Utils::toJSONString($resp));
    }
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
    require_once$path;
}
Sample::main(array_slice($argv, 1));

        如上面的代码,差不多的意思就是一个叫sample的类,然后,我们在最后面使用了设个类的静态方法。samle::main();

        换句话说就是main算是这个php文件的运行的入口了。我们细看下,$argv 这个参数是一个数组,但是并未有实例化,也就是说,这个$argv是空数组。这里,因为这个数组就是空的,所以就没有值了。

        这里,我们先给$argv=array("url"=>"http://tywl88.com/sfz.jpg"); 给他一个数组,有人问,为什么是 url呢?其实这个是这个接口要求的,他要求传入一个url或者一个body,我们这里就用url好了。还有个小问题,就是array_slice()这个数组函数。他是从1开始的。但是我们只定义了一个元素的一维数组。所以,这个从1,改成0.就是  array_slice($argv,0),从0开始就可以了。

        但是,到这里,有参数了,也是不显示的。因为上面的main方法中,我们并未返回查询结果。所以,这里要在上面增加一个函数的返回结果。

        这里,我们直接上代码好了。

        

<?php

// This file is auto-generated, don't edit it. Thanks.
namespaceAlibabaCloud\SDK\Sample;

use AlibabaCloud\SDK\Ocrapi\V20210707\Ocrapi;
use\Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;

use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Ocrapi\V20210707\Models\RecognizeIdcardRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;

classSample {

    /**
     * 使用AK&SK初始化账号Client
     * @paramstring $accessKeyId
     * @paramstring $accessKeySecret
     * @returnOcrapi Client
     */
    publicstaticfunctioncreateClient($accessKeyId, $accessKeySecret){
        $config = newConfig([
            // 必填,您的 AccessKey ID
            "accessKeyId" => $accessKeyId,
            // 必填,您的 AccessKey Secret
            "accessKeySecret" => $accessKeySecret
        ]);
        // 访问的域名
        $config->endpoint = "ocr-api.cn-hangzhou.aliyuncs.com";
        returnnewOcrapi($config);
    }

    /**
     * @paramstring[] $args
     * @returnvoid
     */
    publicstaticfunctionmain($args){
        // 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/311677.html
        $client = self::createClient("xxxx", "yyyy");  //这里替换成你的密钥那些
        $recognizeIdcardRequest = newRecognizeIdcardRequest($args);
        $runtime = newRuntimeOptions([]);
        try {
            // 复制代码运行请自行打印 API 的返回值
            $fan=$client->recognizeIdcardWithOptions($recognizeIdcardRequest, $runtime);
           
        }
        catch (Exception$error) {
            if (!($error instanceof TeaError)) {
               $fan= $error = newTeaError([], $error->getMessage(), $error->getCode(), $error);
            }
            // 如有需要,请打印 error
            $fan=Utils::assertAsString($error->message);
        }
        return$fan;
    }
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
    require_once$path;
}
$argv=array(
        'url'=>'http://www.tywl88.com/sfz.jpg'    //这个换成你的身份证的地址,我们这里是测试的,不能打开的
    );

$str=Sample::main(array_slice($argv, 0));
var_dump($str);

        经过这样的修改之后,你访问 http://www.tywl88.com/src/sample.php 就可以有返回结果了。这里真心服了给这个SDK的程序员,就不能一次性给一个可以执行的案例码?给一个案例,还埋了这么多坑。返回没写,参数没写,对了,还有个地方没说,$recognizeIdcardRequest = newRecognizeIdcardRequest($args);

这里他将$args去掉,直接写成 [] 这样的格式,喵了个咪,这个坑算是天坑了。如果你不把这个参数输入进去,他就永远都是[] ,空数组。永远不会有查询结果。真心服了这些大神了。就不能写完整点码?

        以上编码由惠州网站建设修复,并测试通过。

点击次数:265  更新时间:2023-04-29  【打印此页
下一条:暂无此文章
上一条:wp更换域名的方法和注意事项?
返回产品列表

扫一扫,添加微信

双十一活动季

1:签到7天,即可下载模板

2:开放包月,包年终身会员

3:包月会员,低至10元每月

4:包年会员,低至100元每年

5:终身会员,低至300元永久