• 网站正式通过备案,自己恭喜下
  • 新年新气象,新年快乐
  • 记录下对WordPress源代码的修改
  • 厉害
  • 说说可以了吧
  • 现在开始可以更方便的插入无序列表了,使用短代码
  • 你知道吗?在论坛输入233会变成一个表情哦 =.=,就是这个 :mrgreen:
  • 安装了TT-RSS,然后发现暂时不支持PHP7,然后又删除了,继续用inoreader吧,其实这个用着还好的,恩,很好
  • 前几天在黑莓应用市场居然发现了新安装应用,最重要的是几天后我居然收到了更新推送
  • 发个说说表示下存在感

PHP调用有道翻译API在线翻译文字

网络技术 云落 5个月前 (07-13) 69次浏览 已收录 2个评论
文章目录[隐藏]

注册有道智云,在线调用有道翻译资源

前言

有道智云

网上搜索有道翻译的资源都是有道的 get 的 openapi,但是据说失效了,但是经过云落测试目前还是可以使用的,但是没法大量使用,所以这里注册了有道智云。

有道智云的产品就 4 个,都是核心产品,云落使用的就是翻译功能的,新注册用户有道还算厚道,送了 100 元,鉴于翻译功能费用还是比较便宜的,所以还是可以用一段时间的的。

使用代码

因为有道智云官方有 PHPdemo,所以直接将 demo 小小的改了下,直接拿来使用

//有道翻译
function ydtranslate($query){
	$app_key = '************';//注册有道智云获取
	$sec_key = '********************';//注册有道智云获取
	$api_url = 'http://openapi.youdao.com/api';//可以使用 https
    $args = array(
        'q' => $query,
        'appKey' => $app_key,
        'salt' => rand(10000,99999),
        'from' => 'AUTO',
        'to' => 'zh-CHS',

    );
    $args['sign'] = buildSign($app_key, $query, $args['salt'], $sec_key);
    $ret = call($api_url, $args);
    //echo $ret;
    $ret = json_decode($ret, true)['translation'][0];
    return $ret;
}

//加密
function buildSign($appKey, $query, $salt, $secKey){
    $str = $appKey . $query . $salt . $secKey;
    $ret = md5($str);
    return $ret;
}

//发起网络请求
function call($url, $args=null, $method="post", $testflag = 0, $timeout = 20, $headers=array()){
    $ret = false;
    $i = 0;
    while($ret === false){
        if($i > 1)
            break;
        if($i > 0){
            sleep(1);
        }
        $ret = callOnce($url, $args, $method, false, $timeout, $headers);
        $i++;
    }
    return $ret;
}

function callOnce($url, $args=null, $method="post", $withCookie = false, $timeout = 20, $headers=array()){
    $ch = curl_init();
    if($method == "post"){
        $data = convert($args);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_POST, 1);
    }else{
        $data = convert($args);
        if($data){
            if(stripos($url, "?") > 0){
                $url .= "&$data";
            }else{
                $url .= "?$data";
            }
        }
    }
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    if(!empty($headers)){
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    }
    if($withCookie){
        curl_setopt($ch, CURLOPT_COOKIEJAR, $_COOKIE);
    }
    $r = curl_exec($ch);
    curl_close($ch);
    return $r;
}

function convert(&$args){
    $data = '';
    if (is_array($args)){
        foreach ($args as $key=>$val){
            if (is_array($val)){
                foreach ($val as $k=>$v){
                    $data .= $key.'['.$k.']='.rawurlencode($v).'&';
                }
            }else{
                $data .="$key=".rawurlencode($val)."&";
            }
        }
        return trim($data, "&");
    }
    return $args;
}

使用很简单

echo ydtranslate('I go to school');

和谷歌翻译的比较

这里正好有一段我正在翻译的内容,具体看下。

后语

我在使用有道翻译之后看了下百度翻译,发现百度翻译的 PHP demo 和有道翻译的 PHP demo 几乎一致,可以说除了调用的 api 不一样,基本上是一样的。

相关链接

有道智云
weinxin
扫码订阅,第一时间获得更新
微信扫码二维码,订阅我们网站的动态,另外不定时发送 WordPress 小技巧,你可以随时退订,欢迎订阅哦~

乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP调用有道翻译API在线翻译文字
喜欢 (4)
云落
关于作者:
无折腾,不生活,我是一个WordPress菜鸟,一个玩淘宝的卖家,欢迎你认识我,我是云落!
发表我的评论
取消评论
表情 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 有道测试成功了,但是百度死活无法调出结果,云落可以弄个百度的吗?
    小紫2018-11-08 15:21 回复 Windows 10 | Chrome 63.0.3239.132
  2. 虽然用不到~呵
    半夏2018-07-18 19:48 回复 Windows 10 | Chrome 63.0.3239.26