php 百度翻译接口 脚本执行

来源:互联网 发布:网络侵权的类型 编辑:程序博客网 时间:2024/05/16 01:21

闲来无事 研究了百度翻译的API接口,我是用shell脚本的形式执行
php translate.php -a”中国”
开始执行报错,原来没有编码转换utf8,转换完成就ok了,具体参见代码

执行 php translate.php -a”中国”
结果 string(5) “China”

<?phpdefine("CURL_TIMEOUT",   10);define("URL",            "http://api.fanyi.baidu.com/api/trans/vip/translate");define("APP_ID",         "XXXX"); //替换为您的APPIDdefine("SEC_KEY",        "XXXX");//替换为您的密钥//翻译入口function translate($query, $from = 'ch', $to = 'en'){    $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;}/*}}}*///获取shell命令传过来的参数$parma = getopt('a:b:');//转换为utf8编码$item = iconv('GB2312', 'UTF-8', $parma['a']);$res = translate($item, 'ch', 'en');var_dump($res['trans_result'][0]['dst']);

点赞吧 哈哈

0 0
原创粉丝点击