各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > PHP

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

管理员 2023-09-05
PHP
131

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

内容导读

收集整理的这篇技术教程文章主要介绍了php身份证识别ORC的方法实现,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5195字,纯文字阅读大概需要8分钟

内容图文

这篇文章主要介绍了关于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 class="sitetip">图片img标签展示:</p><img src="'+this.result+'" alt=""/>';         }    } </script> </head><body>     <form action="upload.php" method="post">    <input type="file" value="sdgsdg" id="demo_input" />     <textarea style='display: none;' name="img" id="result" rows=30 cols=300></textarea>     <p id="img_area"></p>     <input type="submit" value="提交"></form></body> </html>

再创建个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 = 'https://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();    $response = false;    do    {        // 1. 设置HTTP URL (API地址)        curl_setopt($curl, CURLOPT_URL, $url);        // 2. 设置HTTP HEADER (表单POST)        $head = array(            'Content-Type: application/x-www-form-urlencoded'        );        curl_setopt($curl, CURLOPT_HTTPHEADER, $head);        // 3. 设置HTTP BODY (URL键值对)        $body = http_build_query($params);        curl_setopt($curl, CURLOPT_POST, true);        curl_setopt($curl, CURLOPT_POSTFIELDS, $body);        // 4. 调用API,获取响应结果        curl_setopt($curl, CURLOPT_HEADER, false);        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;        }        $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);        if ($code != 200)        {            $response = false;            break;        }    } while (0);    curl_close($curl);    return $response;}

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

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

相关推荐:

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

PHP的Reflection反射机制的介绍

以上就是php身份证识别ORC的方法实现的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php身份证识别ORC的方法实现全部内容,希望文章能够帮你解决php身份证识别ORC的方法实现所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 lecms, classcms, fastadmin, pbootcms, phpcms, eyoucms, yzmcms, PHP, xunruicms, jizhicms, dedecms, wordpress, hkcms, yzncms, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

扫码关注

qrcode

QQ交谈

回顶部