Home  >  Article  >  Backend Development  >  Use PHP to call the aggregated data document identification interface to identify local pictures

Use PHP to call the aggregated data document identification interface to identify local pictures

巴扎黑
巴扎黑Original
2016-11-07 17:27:291476browse

This article talks about how to call the ID recognition interface of aggregated data through PHP

Prerequisites

1 Before starting, please make the following preparations

Learn to use PHP to output "Hello World"

To aggregate data to apply for ID recognition Dedicated KEY: https://www.juhe.cn/docs/api/id/153

Operation steps

Configure the PHP development environment

Create a new folder in the corresponding local website root directory and name it: card

Please prepare an ID card photo in jpg format (the picture in this example is from the Internet), name it 1.jpg, and place it in the card directory

Please make sure that PHP has read permission for 1.jpg (use it first fopen('1.jpg', 'r') test)

Create a new index.php file in the card directory and enter the following content:

Php code

<?php
/**
 * 证件识别接口示例
 * 提供两种方式,请根据您的PHP版本、服务器环境等因素选择适合的方式
 * 推荐使用第一种(PHP 5 >= 5.5.0)
 * 示例中的身份证图片来自网络,用真实的身份证图片会有更佳的识别效果
 */
 
header("Content-type:text/html;charset=utf-8");
$config = array(
   &#39;key&#39; => &#39;将我替换成您申请的KEY&#39;,
   //聚合数据证件识别接口的URL地址
   &#39;url&#39; => &#39;http://v.juhe.cn/certificates/query.php&#39;,
   //证件的类型,这里是身份证正面
   &#39;type&#39; => &#39;image/jpg&#39;,
   //证件图片的类型
   &#39;cardType&#39; => &#39;2&#39;,
);
 
/*第一种方式*/
$ch = curl_init($config[&#39;url&#39;]);
//$filename <p> Path to the file which will be uploaded.</p>
//$postname [optional] <p>Name of the file.</p>
$cfile = curl_file_create(&#39;filename.jpg&#39;, $config[&#39;type&#39;], &#39;postname.jpg&#39;);
$data = array(
   &#39;cardType&#39; => $config[&#39;cardType&#39;],
   &#39;key&#39; => $config[&#39;key&#39;],
   &#39;pic&#39; => $cfile,
);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
//已经获取到内容,还没输出,如果不加下面这行,则不需要echo response
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
curl_close($ch);
 
/*/第一种方式*/
 
/*第二种方式*/
$data = array(
   &#39;cardType&#39; => $config[&#39;cardType&#39;],
   &#39;key&#39; => $config[&#39;key&#39;],
   &#39;pic&#39; => "@1.jpg",
);
post($config[&#39;url&#39;], $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_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $response = curl_exec($ch);
   curl_close($ch);
   echo $response;
}

6. Open the browser and visit http:// localhost/card/index.php, under normal circumstances you should see something similar to the following:

Php code

{"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. If the PHP version is lower than 5.5, but you want to use curl_file_create, please refer to the method provided in the official documentation: http://php.net/manual/en/function.curl-file-create.php

Php code

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


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn