Home > Backend Development > PHP Tutorial > 达人们帮小弟看看【百度PHP翻译AP】I咋用?

达人们帮小弟看看【百度PHP翻译AP】I咋用?

WBOY
Release: 2016-06-20 12:43:05
Original
938 people have browsed it

/***************************************************************************
 * Copyright (c) 2015 Baidu.com, Inc. All Rights Reserved * 
**************************************************************************/
/**
 * @file baidu_transapi.php 
 * @author mouyantao(mouyantao@baidu.com)
 * @date 2015/06/23 14:32:18
 * @brief 
 *  
 **/

define("CURL_TIMEOUT",   10); 
define("URL",            "http://api.fanyi.baidu.com/api/trans/vip/translate"); 
define("APPID",         "YOUR APP ID"); //替换为您的APPID
define("Password",        "YOUR SEC KEY");//替换为您的密钥

//翻译入口
function translate($query, $from, $to)
{
    $args = array(
        'q' => $query,
        'appid' => APP_ID,
        'salt' => rand(10000,99999),
        'from' => $from,
        'to' => $to,
    );
    $args['sign'] = buildSign($query, APP_ID, $args['salt'], SEC_KEY);
    $ret = call(URL, $args);
    $ret = json_decode($ret, true);
    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 = CURL_TIMEOUT, $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 = CURL_TIMEOUT, $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;
}/*}}}*/

?>


回复讨论(解决方案)

直接调用就可以了,但首先你要在百度申请一个APP_ID

直接调用就可以了,但首先你要在百度申请一个APP_ID



申请过了。但是不太会用,还有一个HTM版本的您看看

nbsp;html>

    


可打开浏览器控制台查看结果

<script></script>
<script></script>
<script> <br />var appid = '20151202000007220'; <br />var key = '3isbBE_qAhSRYi1FmSF3'; <br />var salt = (new Date).getTime(); <br />var query = 'apple'; <br />// 多个query可以用\n连接 如 query='apple\norange\nbanana\npear' <br />var from = 'en'; <br />var to = 'zh'; <br />var str1 = appid + query + salt +key; <br />var sign = MD5(str1); <br />$.ajax({ <br /> url: 'http://api.fanyi.baidu.com/api/trans/vip/translate', <br /> type: 'get', <br /> dataType: 'jsonp', <br /> data: { <br /> q: query, <br /> appid: appid, <br /> salt: salt, <br /> from: from, <br /> to: to, <br /> sign: sign <br /> }, <br /> success: function (data) { <br /> console.log(data); <br /> } <br />}); <br /> <br /></script>
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template