婷姐 发表于 2024-9-21 12:55:40

当一回雷锋容易,持续发扬雷锋精神就难了(百度翻译接口php写法)

当一回雷锋容易,持续发扬雷锋精神就难了(百度翻译接口php写法),下面我就4414站长的小小白站长们,提供百度接口PHP写法的例子。声明我这个是基于应该算是大众的了。首先不清楚您的CMS有没有自带的memcached与redis。如果有请把相关代码删除掉。另外就是post字段那里请根据自己的CMS做好变量过滤处理。不扯淡了,直接上干货,代码如下:<?php//内存缓存开始(若您的CMS有给予删除此区间的代码)$memcache = null; $redis = null; if (class_exists('Memcached')){$memcache = new Memcached();   $memcache->addServer('127.0.0.1', 11211);}if (class_exists('Redis')){$redis = new Redis();               $redis->connect('127.0.0.1', 6379); }register_shutdown_function(function() use ($memcache, $redis) {if (isset($memcache)) {$memcache->quit();}if (isset($redis)) {$redis->close();}});//内存缓存结束(若您的CMS有给予删除此区间的代码)function curlRequest($url, $method = 'GET', $data = [], $headers = []) {$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);curl_setopt($ch, CURLOPT_MAXREDIRS, 10);curl_setopt($ch, CURLOPT_TIMEOUT, 30);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); if ($method === 'POST') {curl_setopt($ch, CURLOPT_POST, true);if (is_array($data) || is_object($data)) {curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));} else {curl_setopt($ch, CURLOPT_POSTFIELDS, $data);}} elseif ($method !== 'GET') {curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);if (!empty($data)) {curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));}}    if (!empty($headers)) {curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);}   $response = curl_exec($ch);$error = curl_error($ch);   curl_close($ch);if ($error) {throw new Exception("CURL Error: " . $error);}   return $response;}$baiduappid = ''; //到百度申请$baiduapikey = '';//应用的API Key;$baidusecretkey = '';$postData = ['grant_type' =>'client_credentials','client_id' =>$baiduapikey,'client_secret' =>$baidusecretkey]; $headers = ['Content-Type: application/json','Accept: application/json'];$cacheKey = md5($public_r['add_pcurl']).'chatbaidufanyi_access_token_' .$baiduappid;$ret= $memcache->get($cacheKey);//若您的CMS有请改成memcache获取缓存的方式if ($ret== false) {      $ret = json_decode(curlRequest("https://aip.baidubce.com/oauth/2.0/token", 'POST', $postData, $headers),TRUE); $memcache->set($cacheKey,$ret, 3600*24*28);//若您的CMS有请改成memcache保存缓存的方式}$access_token_baidu =$ret['access_token'];$postDatafy= ['from' =>'auto','to' => $_POST['category'],//目标语种方向(前端POST传过来的)PS:请根据自己的CMS做好变量过滤处理,比如帝国的过滤函数RepPostStr,那就可以改为RepPostStr($_POST['category'])'q' =>$_POST['content'],//请求翻译文本(前端POST传过来的)PS:请根据自己的CMS做好变量过滤处理,比如帝国的过滤函数RepPostStr,那就可以改为RepPostStr($_POST['content'])];$baidufyres =curlRequest("https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token=".$access_token_baidu,'POST', json_encode($postDatafy));//翻译接口$baidufy_array = json_decode($baidufyres, true);if(isset($baidufy_array['error_code'])){$date= array('result'=>$baidufy_array['error_msg'],'code'=>0,);echo json_encode($date);exit;      }$date= array('result'=>$baidufy_array['result']['trans_result'],'code'=>1,);echo json_encode($date);
api后端接口就写好了哦,那我们命名为baidufanyi.php,其实百度所有的接口开发流程就是这样的,先获取百度独有的token(这里应该设为缓存,好像1个月内是不过期的,减少点curl时间的花销),而后在请求相关的接口。好人做到底,那顺便也把前端也写个例子,代码如下:
var category = $('#category').val();//这是用户填写的翻译的语言方向,如果只翻译为英语。那可以为固定值var content = $.trim($("textarea").val());//这是用户填写的需要翻译的内容if (category== "" || category == null) {layer.msg('请选择语言类型', {icon: 5, time: 2000, area: '200px', type: 0, anim: 6,});return false;}      if (content== "" || content == null) {layer.msg('请输入翻译内容', {icon: 5, time: 2000, area: '200px', type: 0, anim: 6,});return false;}$.ajax({url: 'baidufanyi.php',type: 'POST',data: {category: category,content: content},dataType : 'json',success: function(json) {$("#fyresult").html(json.result.dst);//json.result.dst这个就是后端返回的翻译最终结果json.result.dst},});

Crystαl 发表于 2024-9-21 12:55:55

雷锋你好

IT618发布 发表于 2024-9-21 12:56:00

呐,这个就叫做雷锋

婷姐 发表于 2024-9-21 12:56:43

呐,这个就叫做雷锋

婷姐 发表于 2024-9-21 12:57:31

点赞,虽然不知道是做什么用的

IT618发布 发表于 2024-9-21 12:57:42

点赞,虽然不知道是做什么用的

TyCoding 发表于 2024-9-21 12:58:30

点赞,虽然不知道是做什么用的

IT618发布 发表于 2024-9-21 12:58:35

感谢分享

Crystαl 发表于 2024-9-21 12:59:35

点赞,希望有缘人能看到
页: [1]
查看完整版本: 当一回雷锋容易,持续发扬雷锋精神就难了(百度翻译接口php写法)

创宇盾启航版免费网站防御网站加速服务