前置條件
在開始前,請作如下準備
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" : '');
}
}
?>