根据需求通过composer下载SDK包
备注:composer 安装SDK包有问题可以指定版本进行升级 (去掉版本号前的^符可以指定版本升级)
代码实现:
/*** 图片文字识别* @return void*/public function cs(){$param = $this->getData();include_once '../vendor/alibabacloud/aliocr/src/Sample.php';$args = [];$args['access_key_id'] = '';\\id$args['access_key_secret'] = '';\\秘钥$args['image_url'] = $param['image_url'];$res = Sample::main($args);}
获得秘钥
<?php// This file is auto-generated, don't edit it. Thanks.namespace AlibabaCloud\SDK\Sample;use Darabonba\OpenApi\OpenApiClient;use AlibabaCloud\OpenApiUtil\OpenApiUtilClient;use AlibabaCloud\Tea\Utils\Utils;use AlibabaCloud\Tea\Console\Console;use Darabonba\OpenApi\Models\Config;use Darabonba\OpenApi\Models\Params;use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;use Darabonba\OpenApi\Models\OpenApiRequest;class Sample{/*** 使用AK&SK初始化账号Client* @param string $accessKeyId* @param string $accessKeySecret* @return OpenApiClient Client*/public static function createClient($accessKeyId, $accessKeySecret){$config = new Config([// 必填,您的 AccessKey ID"accessKeyId" => $accessKeyId,// 必填,您的 AccessKey Secret"accessKeySecret" => $accessKeySecret]);// 访问的域名$config->endpoint = "ocr--";return new OpenApiClient($config);}/*** 使用STS鉴权方式初始化账号Client,推荐此方式。本示例默认使用AK&SK方式。* @param string $accessKeyId* @param string $accessKeySecret* @param string $securityToken* @return OpenApiClient Client*/public static function createClientWithSTS($accessKeyId, $accessKeySecret, $securityToken){$config = new Config([// 必填,您的 AccessKey ID"accessKeyId" => $accessKeyId,// 必填,您的 AccessKey Secret"accessKeySecret" => $accessKeySecret,// 必填,您的 Security Token"securityToken" => $securityToken,// 必填,表明使用 STS 方式"type" => "sts"]);// 访问的域名$config->endpoint = "ocr--";return new OpenApiClient($config);}/*** API 相关* @return Params OpenApi.Params*/public static function createApiInfo($image = ""){$params = new Params([// 接口名称"action" => "RecognizeAdvanced",// 接口版本"version" => "-07-07",// 接口协议"protocol" => "HTTPS",// 接口 HTTP 方法"method" => "POST","authType" => "AK","style" => "V3",// 接口 PATH"pathname" => "/",// 接口请求体内容格式"reqBodyType" => $image,// 接口响应体内容格式"bodyType" => "json"]);return $params;}/*** @param string[] $args* @return void*/public static function main($args){// 初始化 Client,采用 AK&SK 鉴权访问的方式,此方式可能会存在泄漏风险,建议使用 STS 方式。更多鉴权访问方式请参考:/document_detail/311677.html$client = self::createClient($args['access_key_id'], $args['access_key_secret']);// query params$queries = [];$queries["Row"] = true;//判断是使用路径还是body体直接上传识别if (isset($args['image']) && !empty($args['image'])) {$params = self::createApiInfo($args['image']);} else {$params = self::createApiInfo();$queries['Url'] = $args['image_url'];// 图片路径}// runtime options$runtime = new RuntimeOptions([]);$request = new OpenApiRequest(["query" => OpenApiUtilClient::query($queries)]);// 复制代码运行请自行打印 API 的返回值// 返回值为 Map 类型,可从 Map 中获得三类数据:响应体 body、响应头 headers、HTTP 返回的状态码 statusCode$resp = $client->callApi($params, $request, $runtime);$res = json_decode($resp['body']['Data'], true);return $res['prism_rowsInfo'];}}$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';if (file_exists($path)) {require_once $path;}
返回参数:
Array
(
[0]=>Array
(
[rowId]=>0
[word]=>金铲铲之战抽卡概率图
)
[1]=>Array
(
[rowId]=>1
[word]=>1费卡2费卡3费卡4费卡5费卡
)
[2]=>Array
(
[rowId]=>2
[word]=>Qv2100%
)
[3]=>Array
(
[rowId]=>3
[word]=>Cv375%25%
)
[4]=>Array
(
[rowId]=>4
[word]=>lv46ExP50%30%20%
)
[5]=>Array
(
[rowId]=>5
[word]=>ev510P40%33%25%2%
)
[6]=>Array
(
[rowId]=>6
[word]=>wv620EP25%40%30%5%
)
[7]=>Array
(
[rowId]=>7
[word]=>Qv736xp19%30%35%15%1%
)
[8]=>Array
(
[rowId]=>8
[word]=>wuv856xP15%20%35%25%5%
)
[9]=>Array
(
[rowId]=>9
[word]=>Lv980Exp10%15%30%30%15%
)
)