php之使用curl对百度orc进行文字识别(二维码识别同理)--base64编码方式(解决image format error)
参考资料:
获取Access Token:https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu
百度ocr参考手册:https://cloud.baidu.com/doc/OCR/s/zk3h7xz52
将图片转换base64编码:https://blog.csdn.net/weixin_44797182/article/details/105922765
php之使用file_get_contents对百度orc进行文字识别(二维码识别同理)–base64编码方式(解决image format error) :https://blog.csdn.net/weixin_44797182/article/details/105924635
<?php
header("Content-Type:text/html; charset=utf-8");
// 1,获取Access Token
$url = 'https://aip.baidubce.com/oauth/2.0/token';
$data = array(
'grant_type' => 'client_credentials',
'client_id' => '111', //必须参数,应用的API Key;
'client_secret' => '222' //必须参数,应用的Secret Key;
);
$token_result = json_decode(query_post($url, $data)); // 对返回的json数据进行转换
$token = $token_result->access_token; //获取Access Token
// echo $token;
// 2,获取图片信息
$requestImgUrl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=' . $token;
$data = array(
// 必须得是网站上的图片,像本地上的图片进不能使用,这就是为什么要使用base64编码
// 'url' => 'http://aip.bdstatic.com/portal/dist/1530540600796/ai_images/technology/ocr-general/general/tech-general-original-scanned.png',//你的图片地址
// 使用base编码进行提交图片,连接或本地图片都行
// 'image' => chunk_split(base64_encode(file_get_contents('../pic_001.png')))
'image' => chunk_split(base64_encode(file_get_contents('https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1588616902312&di=4ee3454b71e4d46238dcd896e89742ab&imgtype=0&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D2676471211%2C3986314344%26fm%3D214%26gp%3D0.jpg')))
);
$token_result = query_post($requestImgUrl, $data); // 进行post请求
print_r($token_result); //返回json数据
// print_r(json_decode($token_result));
function query_post($url = "https://aip.baidubce.com/oauth/2.0/token", $data = array())
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 不从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_HEADER, 0); //启用时会将头文件的信息作为数据流输出。这里不启用
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //如果成功只将结果返回,不自动输出任何内容。如果失败返回FALSE
curl_setopt($curl, CURLOPT_POST, 1); //如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); //需要POST的数据
curl_setopt($curl, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded; charset=utf-8"));
$result = curl_exec($curl);
if (!curl_errno($curl)) {
return $result;
} else {
return 'Curl error: ' . curl_error($curl);
}
curl_close($curl);
}
浙公网安备 33010602011771号