php实现调用百度的ocr文字识别接口

1、通过登陆百度api获取文字识别接口

https://ai.baidu.com/tech/ocr/general

    具体的接口调用参数按照百度的官方文档

https://ai.baidu.com/docs#/OCR-API/top

2、接下来的就是调用接口使用和处理数据了。我用的是最普通的接口。每日50000条,不保证并发。

一下为我的代码部分:

//access_token调用
function request_post($url = '', $param = '') {
        if (empty($url) || empty($param)) {
            return false;
        }
        
        $postUrl = $url;
        $curlPost = $param;
        $curl = curl_init();//初始化curl
        curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页
        curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
        curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
        curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
        $data = curl_exec($curl);//运行curl
        curl_close($curl);
        
        return $data;
    }
    $url = 'https://aip.baidubce.com/oauth/2.0/token';
    $post_data['grant_type']       = 'client_credentials';
    $post_data['client_id']      = 'your API key';

    $post_data['client_secret'] = 'your secret  key';
    $o = "";
    foreach ( $post_data as $k => $v ) 
    {
        $o.= "$k=" . urlencode( $v ). "&" ;
    }
    $post_data = substr($o,0,-1);
    
    $res = request_post($url, $post_data);


    $access_token = json_decode($res,1)['access_token'];
    //var_dump($access_token);
    //调用结束

    //post请求接口
    function index($access_token){


        $data = array(

            'url' => 'http://aip.bdstatic.com/portal/dist/1530540600796/ai_images/technology/ocr-general/general/tech-general-original-scanned.png',//你的图片地址
            //'image' => '',
            //检查图片朝向
            'detect_direction' => 'true',
            //返回可信度
            'probability' => 'true',
        );


        $response = config($data,$access_token);
        return $response;
    }


    function config($data,$access_token){
        //请求URL需要带 access_token 参数
        $url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token='.$access_token;
        $header = array('Content-Type:application/x-www-form-urlencoded');
       $response = tocurl($url,$header,$data);
       return $response;
    }


    function tocurl($url, $header, $content){
    $ch = curl_init();
    if(substr($url,0,5)=='https'){
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
           //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  // 从证书中检查SSL加密算法是否存在
        }
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($content));
        $response = curl_exec($ch);
        if($error=curl_error($ch)){
            die($error);
        }
        curl_close($ch);
        return $response;
    }


    $text_json = index($access_token);
    $text_arr = json_decode($text_json,1);
    var_dump($text_arr);

?>



//最后得到的数据为:

 // array(4) {
//   ["log_id"]=>
//   int(5013683280382131405)
//   ["direction"]=>
//   int(0)
//   ["words_result_num"]=>
//   int(6)
//   ["words_result"]=>
//   array(6) {
//     [0]=>
//     array(2) {
//       ["words"]=>
//       string(3) "目"
//       ["probability"]=>
//       array(3) {
//         ["variance"]=>
//         float(0)
//         ["average"]=>
//         float(0.839904)
//         ["min"]=>
//         float(0.839904)
//       }
//     }
//     [1]=>
//     array(2) {
//       ["words"]=>
//       string(9) "Bad百度"
//       ["probability"]=>
//       array(3) {
//         ["variance"]=>
//         float(0.029807)
//         ["average"]=>
//         float(0.904807)
//         ["min"]=>
//         float(0.560053)
//       }
//     }
//     [2]=>
//     array(2) {
//       ["words"]=>
//       string(44) "百度在线网络技术(北京)有限公司"
//       ["probability"]=>
//       array(3) {
//         ["variance"]=>
//         float(1.0E-6)
//         ["average"]=>
//         float(0.999414)
//         ["min"]=>
//         float(0.996175)
//       }
//     }
//     [3]=>
//     array(2) {
//       ["words"]=>
//       string(50) "Baidu Online Network Technology(Beijing)Co., Ltd E"
//       ["probability"]=>
//       array(3) {
//         ["variance"]=>
//         float(0.028514)
//         ["average"]=>
//         float(0.931889)
//         ["min"]=>
//         float(0.226499)
//       }
//     }
//     [4]=>
//     array(2) {
//       ["words"]=>
//       string(36) "北京百度网讯科技有限公司"
//       ["probability"]=>
//       array(3) {
//         ["variance"]=>
//         float(1.0E-6)
//         ["average"]=>
//         float(0.999341)
//         ["min"]=>
//         float(0.997463)
//       }
//     }
//     [5]=>
//     array(2) {
//       ["words"]=>
//       string(49) "Beijing Baidu Netcom Science Technology Co,, Ltds"
//       ["probability"]=>
//       array(3) {
//         ["variance"]=>
//         float(0.033526)
//         ["average"]=>
//         float(0.896252)
//         ["min"]=>
//         float(0.452083)
//       }
//     }
//   }
// }

你可能感兴趣的:(php实现调用百度的ocr文字识别接口)