最近做一翻译公司网站,要求加一在线翻译。之前他们要的是一个外链接,我在想要是有现成的翻译网站接口可以调用的话,这个链接也就没必要了。在网上查了下,google的在线翻译可以用,找到了相关的代码,我自己添加了一些,测试可以用。相关代码如下:
- <?php
- /* Google翻译PHP接口
- / * 注意:如果翻译文本为UTF-8编码,则要删去mb_convert_encoding函数
- */
- class Google_API_translator {
- public$url = "http://translate.google.com/translate_t";
- public$text = "";//翻译文本
- public$out = ""; //翻译输出
- public$lang_src = "";//要翻译的语言
- public$lang_des = "";//翻译成的语言
- function setText($text){
- $this->text = $text;
- }
- function setLang($lang_src,$lang_des){
- $this->lang_src = $lang_src;
- $this->lang_des = $lang_des;
- }
- function translate() {
- $this->out = "";
- $gphtml = $this->postPage($this->url, $this->text,$this->lang_src,$this->lang_des);
- $out = substr($gphtml, strpos($gphtml, "<div id=result_box dir=/"ltr/">"));
- $out = substr($out, 29);
- $out = substr($out, 0, strpos($out, "</div>"));
- $this->out = $out;
- return$this->out;
- }
- function postPage($url, $text,$lang_src,$lang_des) {
- $html ='';
- if($url != "" && $text != ""&&$lang_src != ""&&$lang_des != "") {
- $ch = curl_init($url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_HEADER, 1);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($ch, CURLOPT_TIMEOUT, 15);
- $fields = array('hl=zh-CN', 'langpair='.$lang_src.'|'.$lang_des, 'ie=UTF-8','text='.urlencode(mb_convert_encoding($text, 'UTF-8', 'GB2312')));
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, implode('&', $fields));
- $html = curl_exec($ch);
- if(curl_errno($ch)) $html = "";
- curl_close ($ch);
- }
- return$html;
- }
- }
- ?>
<?php /* Google翻译PHP接口 / * 注意:如果翻译文本为UTF-8编码,则要删去mb_convert_encoding函数 */ class Google_API_translator { public $url = "http://translate.google.com/translate_t"; public $text = "";//翻译文本 public $out = ""; //翻译输出 public $lang_src = "";//要翻译的语言 public $lang_des = "";//翻译成的语言 function setText($text){ $this->text = $text; } function setLang($lang_src,$lang_des){ $this->lang_src = $lang_src; $this->lang_des = $lang_des; } function translate() { $this->out = ""; $gphtml = $this->postPage($this->url, $this->text,$this->lang_src,$this->lang_des); $out = substr($gphtml, strpos($gphtml, "<div id=result_box dir=/"ltr/">")); $out = substr($out, 29); $out = substr($out, 0, strpos($out, "</div>")); $this->out = $out; return $this->out; } function postPage($url, $text,$lang_src,$lang_des) { $html =''; if($url != "" && $text != ""&&$lang_src != ""&&$lang_des != "") { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 15); $fields = array('hl=zh-CN', 'langpair='.$lang_src.'|'.$lang_des, 'ie=UTF-8','text='.urlencode(mb_convert_encoding($text, 'UTF-8', 'GB2312'))); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, implode('&', $fields)); $html = curl_exec($ch); if(curl_errno($ch)) $html = ""; curl_close ($ch); } return $html; } } ?>
原始代码地址:http://blog.csdn.net/aprin
测试结果:
显示结果
转自: http://blog.csdn.net/weifangan/article/details/4542237