首页 > 编程 > PHP > 正文

php身份证识别ORC的方法实现

2020-03-22 17:33:01
字体:
来源:转载
供稿:网友
这篇文章主要介绍了关于php身份证识别ORC的方法实现,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

先创建一个html,并以json格式传输到php文件

 !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd  html xmlns= http://www.w3.org/1999/xhtml  head  meta http-equiv= Content-Type content= text/html; charset=utf-8 /  title 身份证识别 /title  style  /style  script  window.onload = function(){  var input = document.getElementById( demo_input  var result= document.getElementById( result  var img_area = document.getElementById( img_area  if ( typeof(FileReader) === undefined ){ result.innerHTML = 抱歉,你的浏览器不支持 FileReader,请使用现代浏览器操作!  input.setAttribute( disabled , disabled  }else{ input.addEventListener( change ,readFile,false); function readFile(){ var file = this.files[0];  //这里我们判断下类型如果不是图片就返回 去掉就可以上传任意文件  if(!/image///w+/.test(file.type)){ alert( 请确保文件为图像类型  return false;  var reader = new FileReader();  reader.readAsDataURL(file);  console.log(); reader.onload = function(e){  result.innerHTML = this.result;  img_area.innerHTML = p >

再创建个upload.php

 ?phpheader( Content-Type: text/html; charset=UTF-8  * base64图片上传 * @param $base64_img * @return array$base64_img = trim($_POST[ img $up_dir = upload/ //存放在当前目录的upload文件夹下$fi_dir = ok_upload/ //存放在当前目录的upload文件夹下if(!file_exists($up_dir)){ mkdir($up_dir,0777);if(preg_match( /^(data:/s*image//(/w+);base64,)/ , $base64_img, $result)){ $type = $result[2]; if(in_array($type,array( pjpeg , jpeg , jpg , gif , bmp , png ))){ $new_file = $up_dir.date( YmdHis_ ). . .$type; if(file_put_contents($new_file, base64_decode(str_replace($result[1], , $base64_img)))){ $img_path = str_replace( ../../.. , , $new_file);$path = upload/ $data = file_get_contents($img_path);$base64 = base64_encode($data);$appkey = LzJu1grfwH6UaDX2 $params = array( app_id = 1106920947 , image = $base64, card_type = 0 , time_stamp = strval(time()), nonce_str = strval(rand()), sign = ,$params[ sign ] = getReqSign($params, $appkey);// 执行API调用$url = http://api.ai.qq.com/fcgi-bin/ocr/ocr_idcardocr //身份证识别OCR$response = doHttpPost($url, $params); echo $response;die;$arr = json_decode($response,true);$photo = base64_decode($arr[ data ][ image if(!file_exists($fi_dir)){ mkdir($fi_dir,0777);$type = jpg  if(in_array($type,array( pjpeg , jpeg , jpg , gif , bmp , png ))){ $new_file = $fi_dir.date( YmdHis_ ). . .$type; if(file_put_contents($new_file, str_replace($result[1], , $photo))){ $img_paths = str_replace( ../../.. , , $new_file); echo 图片处理成功 /br img src= .$img_paths.  }else{ echo 图片处理失败 /br  }else{ echo 图片上传失败 /br  }else{ //文件类型错误 echo 图片上传类型错误 }else{ //文件错误 echo 文件错误 }
// getReqSign :根据 接口请求参数 和 应用密钥 计算 请求签名// 参数说明// - $params:接口请求参数(特别注意:不同的接口,参数对一般不一样,请以具体接口要求为准)// - $appkey:应用密钥// 返回数据// - 签名结果function getReqSign($params /* 关联数组 */, $appkey /* 字符串*/) // 1. 字典升序排序 ksort($params); // 2. 拼按URL键值对 $str =  foreach ($params as $key = $value) if ($value !== ) $str .= $key . = . urlencode($value) .  // 3. 拼接app_key $str .= app_key= . $appkey; // 4. MD5运算+转换大写,得到请求签名 $sign = strtoupper(md5($str)); return $sign;}
// doHttpPost :执行POST请求,并取回响应结果// 参数说明// - $url :接口请求地址// - $params:完整接口请求参数(特别注意:不同的接口,参数对一般不一样,请以具体接口要求为准)// 返回数据// - 返回false表示失败,否则表示API成功返回的HTTP BODY部分function doHttpPost($url, $params) $curl = curl_init();
curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $body);
curl_setopt($curl, CURLOPT_NOBODY, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($curl); if ($response === false) $response = false; break;
return $response;}

这样就能识别身份证上的信息了

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP !

相关推荐:

php 通过html-table形式完成excel下载的功能实现

PHP的Reflection反射机制的介绍

以上就是php身份证识别ORC的方法实现的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表