用PHP调用证件识别接口识别本地图片

前置条件

在开始前,请作如下准备:
1.学会用PHP输出“Hello World” 
2.去聚合数据申请证件识别专用的KEY:https://www.juhe.cn/docs/api/id/153

操作步骤

1.配置好PHP开发环境 
2.在相应的本地网站根目录下新建一个文件夹并命名为:card 
3.请准备一张jpg格式的身份证照片(本示例中的图片来自网络),并命名为1.jpg,放在card目录 
4.请务必确保PHP对1.jpg有读权限(先用fopen(‘1.jpg’, ‘r’)测试一下) 
5.在card目录新建一个index.php文件,并输入以下内容:

<?php
/**
 * 证件识别接口示例
 * 提供两种方式,请根据您的PHP版本、服务器环境等因素选择适合的方式
 * 推荐使用第一种(PHP 5 >= 5.5.0)
 * 示例中的身份证图片来自网络,用真实的身份证图片会有更佳的识别效果
 */

header("Content-type:text/html;charset=utf-8");
$config = array(
  'key' => '将我替换成您申请的KEY',
  'url' => 'http://v.juhe.cn/certificates/query.php', //聚合数据证件识别接口的URL地址
  'cardType' => '2', //证件的类型
  'type' => 'image/jpg', //证件图片的类型
);

/*第一种方式*/
$ch = curl_init($config['url']);
$cfile = curl_file_create('1.jpg', $config['type'], '1.jpg');
$data = array(
  'cardType' => $config['cardType'],
  'key' => $config['key'],
  'pic' => $cfile,
);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
curl_close($ch);

echo "";
/*/第一种方式*/

/*第二种方式*/
$data = array(
  'cardType' => $config['cardType'],
  'key' => $config['key'],
  'pic' => "@1.jpg",
);
post($config['url'], $data);
/*/第二种方式*/

function post($url, $data) {
  $ch = curl_init();
  curl_setopt( $ch , CURLOPT_POST , true );
  @curl_setopt( $ch , CURLOPT_POSTFIELDS , $data);
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_exec($ch);
  curl_close($ch);
}

6.打开浏览器,访问http://localhost/card/index.php,正常情况下你应该看到类似下面的内容:

{"error_code":"200","reason":"操作成功","result":{"住址":"XX省XX县XX村XX号","保留":"","公民身份号码":"420188195408288888","出生":"1954-08-28","头像":"","姓名":"XXX","性别":"女","民族":"汉族"}}
{"error_code":"200","reason":"操作成功","result":{"住址":"XX省XX县XX村XX号","保留":"","公民身份号码":"420188195408288888","出生":"1954-08-28","头像":"","姓名":"XXX","性别":"女","民族":"汉族"}}

7.如果PHP版本低于5.5,但是又想用curl_file_create,请参考文档提供的方法:http://php.net/manual/en/function.curl-file-create.php

For PHP < 5.5:
 
<?php
 
if (!function_exists('curl_file_create')) {
    function curl_file_create($filename, $mimetype = '', $postname = '') {
        return "@$filename;filename="
            . ($postname ?: basename($filename))
            . ($mimetype ? ";type=$mimetype" : '');
    }
}
 
?>

  

 

转载于:https://www.cnblogs.com/annie00/p/5983601.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要用PHP调用聚合证件识别API接口,可以使用PHP的CURL库。在调用API接口时,需要注意TLS版本的问题。 可以通过以下方式设置CURL的TLS版本: ```php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); $output = curl_exec($ch); curl_close($ch); ``` 在上面的代码中,通过设置CURLOPT_SSLVERSION选项来指定TLS版本。这里设置为CURL_SSLVERSION_TLSv1_2,表示使用TLS 1.2版本。 另外,为了避免SSL证书验证失败的问题,还需要设置CURLOPT_SSL_VERIFYPEER和CURLOPT_SSL_VERIFYHOST两个选项为false。 在调用API接口时,需要将请求参数以POST方式发送到API接口,可以使用curl_setopt函数来设置POST参数: ```php $post_data = array( 'key1' => 'value1', 'key2' => 'value2', ); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data)); ``` 在上面的代码中,首先定义了一个$post_data数组,包含了API接口所需的请求参数。然后,通过curl_setopt函数设置CURLOPT_POST选项为1,表示这是一个POST请求,接着设置CURLOPT_POSTFIELDS选项为http_build_query($post_data),将请求参数以URL编码的形式发送到API接口。 最后,执行curl_exec函数发送请求,并通过curl_close函数关闭CURL句柄。 希望这些信息对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值