用PHP调用证件识别API来识别本地图片

前置条件

在开始前,请作如下准备 1.学会用PHP输出“Hello World” 2.去 聚合数据 申请证件识别专用的KEY

操作步骤

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" : '');
    }
}

?>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,956评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,259评论 19 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,934评论 0 17
  • cURL是一个利用URL语法规定来传输文件和数据的工具,支持很多协议和选项,如HTTP、FTP、TELNET等,能...
    司马东阳阅读 5,314评论 0 6
  • 再合适的两个人,如果不去关心,慢慢就陌生了!再深的感情,如果不去呵护,慢慢就淡了!许多熟悉的事,不去回味,渐渐就忘...
    A羽翼阅读 1,432评论 0 0

友情链接更多精彩内容