php技巧PHP经验分享程序猿的进阶屋

php接入百度AI 文字识别api

2017-10-24  本文已影响114人  geeooooz

1.ceshi.php

<?php
/**
 * 发起http post请求(REST API), 并获取REST请求的结果
* @param string $url
* @param string $param
* @return - http response body if succeeds, else false.
*/
header("Content-Type: text/html; charset=UTF-8");
function request_post($url = '', $param = '')
{
    if (empty($url) || empty($param)) {
        return false;
    }

    $postUrl = $url;
    $curlPost = $param;
    // 初始化curl
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $postUrl);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    // 要求结果为字符串且输出到屏幕上
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    // post提交方式
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
    // 运行curl
    $data = curl_exec($curl);
    curl_close($curl);

    return $data;
}
//获取access_token
include 'curl.php';
$curl = new Curl();
$access_token = $curl->access_token();
//定义参数并去请求api 
$url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general?access_token=' . $access_token;
$img = file_get_contents('1.png');
$img = base64_encode($img);
$bodys = array(
        "image" => $img
);
$data = json_decode(request_post($url, $bodys));//解码json数据
//重定义数据
$arr = array();
foreach ($data->words_result as $k=>&$v){
    $arr[]=$v->words;
}
//转换成字符串
var_dump(json_encode($arr));




2.curl.php

<?php 

class Curl{
    public function _request($curl, $https = true,$method='GET',$data = null){
        $ch = curl_init();//初始化curl
        curl_setopt($ch, CURLOPT_URL, $curl);
        curl_setopt($ch, CURLOPT_HEADER, FALSE);//CURLOPT_HEADER 设置头部
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);//设置内容
        if($https){
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//是否进行服务器主机验证 不验证
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//是否验证证书 验证
            if($method == 'POST'){
                curl_setopt($ch,CURLOPT_POST , true);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//设置数据
            }
            
            $content = curl_exec($ch);//得到一个值
            curl_close($ch);//关闭资源 释放
            return $content;//返回得到的值
        }
    }
    /**
     * 获取API访问授权码
     * @param ak: ak from baidu cloud app
     * @param sk: sk from baidu cloud app
     * @return - access_token string if succeeds, else false.
     */
    public function access_token(){
        //密钥
        $ak = 'HPxjQ2nR0ClpNG9sXWBqGp47';
        $sk = 'n7wsd5Le0hFExb5G2gs0LptPAdSeDUPR';
        //请求地址
        $url = 'https://aip.baidubce.com/oauth/2.0/token';
        
        //参数
        $post_data = array();
        $post_data['grant_type']  = 'client_credentials';
        $post_data['client_id']   = $ak;
        $post_data['client_secret'] = $sk;
        
        //请求方法
        $res = $this->_request($url,true,'POST',$post_data);
        $res = json_decode($res, true);
        return $res['access_token'];
    }
}
?>

上一篇下一篇

猜你喜欢

热点阅读