百度翻译API - PHP实现

原来跟大家分享过百度应用引擎BAE的体验,这几天纠结iOS课题项目,想了几天,后来决定做个掌上翻译的应用,调用某某翻译API来实现,至于什么翻译后来定为百度翻译,原因有以下几点:

  1. 天朝百度是老大
  2. 百度官方对翻译API的说明很详细
  3. 有Get和Post两种方式可用,Get最大2k字符限制,Post最大5k,返回标准Json格式

当时想到过另外一个项目,一个监控,通过PC端发送截屏到指定邮箱,iOS App 通过邮件接收读取图片,达到最基础的一个远控功能,后来想到通过邮箱中转效率实在太低,再想到直接PC和iOS通信,太难,再或者通过Webservice,一个网页接口来中转,太麻烦,三端编码,最后这想法只好泯灭在睡梦之中!

准备先看看PHP如何实现,网上找了找,Get方式实现还是蛮简单,需要在百度开发者中心申请一个API Key,下面是网上摘抄的一段实现百度翻译API的PHP代码,测试可以实现,不过英译中可能需要转换编码。

function language($value,$from="auto",$to="auto")
{
  $value_code=urlencode($value);
  #首先对要翻译的文字进行 urlencode 处理
  $appid="YourApiKey";
  #您注册的API Key
  $languageurl = "http://openapi.baidu.com/public/2.0/bmt/translate?client_id=" . $appid ."&q=" .$value_code. "&from=".$from."&to=".$to;
  #生成翻译API的URL GET地址
  $text=json_decode(language_text($languageurl));
  $text = $text->trans_result;
  return $text[0]->dst;
}
function language_text($url)  #获取目标URL所打印的内容
{
  if(!function_exists('file_get_contents')) {
   $file_contents = file_get_contents($url);
  } else {
  $ch = curl_init();
  $timeout = 5;
  curl_setopt ($ch, CURLOPT_URL, $url);
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  $file_contents = curl_exec($ch);
  curl_close($ch);
  }
   return $file_contents;
}
  echo language('中国');
?>

传送门:

百度翻译API | 百度开发者中心