PHP免费使用百度翻译API使用在线翻译服务

» 免费资源 » PHP免费使用百度翻译API使用在线翻译服务

提高翻译,百度绝对是会提到的一家公司,虽然翻译质量不如谷歌,也不如有道,但是好在便宜,今天就推荐下百度的翻译服务。

PHP免费使用百度翻译API使用在线翻译服务-极客公园

前言

之前发过有道的翻译和谷歌的翻译,有朋友问我百度的翻译,进他提醒才知道百度翻译这么大方,居然有很大的免费额度,不管是不是前期钓鱼,反正上车了 😀

API代码

其实百度的代码和有道的基本一致,应该说这种api调用基本一样,云落在api基础上略微修改。

//百度翻译入口
function dtranslate($query){
	$bd_url = 'https://api.fanyi.baidu.com/api/trans/vip/translate';
	$bd_app_id = '2018112006545636924';//修改成你自己的
	$bd_sec_key = 'Txooxxooxxooxxoo';//修改成你自己的
    $args = array(
        'q' => $query,
        'appid' => $bd_app_id,
        'salt' => rand(10000,99999),
        'from' => 'auto',
        'to' => 'zh',
    );
    $args['sign'] = buildSign($query, $bd_app_id, $args['salt'], $bd_sec_key);
    $ret = call($bd_url, $args);
    $ret = json_decode($ret, true)[trans_result][0][dst];
    return $ret;
}

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

//发起网络请求
function call($url, $args=null, $method="post", $testflag = 0, $timeout = '30', $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 = '30', $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 dtranslate('I go to school today.');

优惠政策

收费模式:每月翻译字符数低于200万,享免费服务;现价¥49.00/百万字符,原价¥70.00/百万字符

可以说这个额度对我来说足够了的,至于翻译质量?这价格还要啥自行车?? ❓

相关链接

百度翻译

-- 完 --

发表评论

电子邮件地址不会被公开。 必填项已用*标注

3 Replies to “PHP免费使用百度翻译API使用在线翻译服务”