利用谷歌 Translate API制作自己的翻译脚本


Posted in PHP onJune 04, 2014

PHP代码:

#!/usr/bin/php -q
<?php
/** 
 * PHP Script For Google Translate
 * @author:Yishan Wang
 * @version:1.0.0
 */
class Google_API_translator
{
 public $url = "http://translate.google.com/translate_t";
 public $text = "";
 public $out = "";
 public $ip = '';
 function setText($text){
  $this->text = $text;
 }
 function translate($from='auto',$to='zh-CN'){
  $this->out = "";
  $gphtml = $this->postPage($this->url, $this->text,$from,$to);
  preg_match_all('/<span/s+title/="[^>]+>([^<]+)<//span>/i',$gphtml,$res);
  $this->out = $res[1][0];
  return $this->out;
 }
 /*
 $from  需要翻译的语言
 $to    翻译的语言
 */
 function postPage($url, $text,$from='auto',$to='zh-CN'){
  $html ='';
  if($url != "" && $text != "") {
   $ch = curl_init($url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   if(!empty($this->ip) && is_string($this->ip)){
    curl_setopt($ch, CURLOPT_INTERFACE,$this->ip);
   }
   curl_setopt($ch, CURLOPT_HEADER, 1);
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
   curl_setopt($ch, CURLOPT_TIMEOUT, 15);
   /*
   *hl - 界面语言,此处无用。
   *langpair - src lang to dest lang
   *ie - urlencode的编码方式?
   *text - 要翻译的文本
   */
   $fields = array('hl=zh-CN', 'langpair='.$from.'|'.$to, 'ie=UTF-8','text='.$text);
   $fields = implode('&', $fields);
   curl_setopt($ch, CURLOPT_POST, 1);
   curl_setopt($ch, CURLOPT_POSTFIELDS,$fields);
   $html = curl_exec($ch);
   if(curl_errno($ch)) $html = "";
   curl_close ($ch);
  }
  return $html;
 }
}
 $from = !empty($_REQUEST['fromlan'])?$_REQUEST['fromlan']:'en';
 $to = !empty($_REQUEST['tolan'])?$_REQUEST['tolan']:'zh-CN';
 $keywords  = "";
 for($i=1;$i<$argc;$i++){
  $keywords .= $argv[$i]." "; 
 }
 $article = !empty($_REQUEST['article'])?$_REQUEST['article']:$keywords;
 $g = new Google_API_translator();
 if(isset($_REQUEST['ip']) && !empty($_REQUEST['ip']))
 {
 $g -> ip = $_REQUEST['ip'];
 }
 $article = iconv('GBK','UTF-8',$article);
 $article = str_replace('{enter}',"/r/n",$article);
 $g->setText($article);
 $g->translate($from,$to);
 echo "-----------翻译结果--------------/n";
 echo iconv('GBK','UTF-8',$g->out);
 echo "/n";
?>

2、将以上内容保存名为“gtranslate”的文件中。

3、给gtranslate添加执行权限

    chmod a+x gtranslate

4、创建软连接

    ln -s /yourpath/gtranslate /usr/bin/gtranslate

5、输入测试词汇:

    gtranslate Hello World

    -----------翻译结果--------------
    世界您好

>>>

6、做了个中英文互译的版本。

用 gtranslate China ,英译汉

用 gtranslate -r 中国 ,汉译英

>>>

PHP 相关文章推荐
php模板之Phpbean的目录结构
Jan 10 PHP
PHP CURL模拟GET及POST函数代码
Apr 25 PHP
关于尾递归的使用详解
May 02 PHP
php截取中文字符串不乱码的方法
Dec 25 PHP
php使用socket post数据到其它web服务器的方法
Jun 02 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
Dec 22 PHP
thinkphp3.x中display方法及show方法的用法实例
May 19 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
Nov 25 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
Dec 24 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 PHP
PHP实现的下载远程文件类定义与用法示例
Jul 05 PHP
PHP中quotemeta()函数的用法讲解
Apr 04 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
Jun 04 #PHP
PHP 如何获取二维数组中某个key的集合
Jun 03 #PHP
PHP 二维数组根据某个字段排序的具体实现
Jun 03 #PHP
php 批量添加多行文本框textarea一行一个
Jun 03 #PHP
PHP解决URL中文GBK乱码问题的两种方法
Jun 03 #PHP
php数组中包含中文的排序方法
Jun 03 #PHP
php实现文件下载实例分享
Jun 02 #PHP
You might like
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
2016/05/20 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
php实现头像上传预览功能
2017/04/27 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
jQuery选择器的工作原理和优化分析
2011/07/25 Javascript
js形成页面的一种遮罩效果实例代码
2014/01/04 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
简单的JS轮播图代码
2016/07/18 Javascript
在localStorage中存储对象数组并读取的方法
2016/09/24 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
Python标准库defaultdict模块使用示例
2015/04/28 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
Python3开发环境搭建详细教程
2020/06/18 Python
使用Python项目生成所有依赖包的清单方式
2020/07/13 Python
Python将字典转换为XML的方法
2020/08/01 Python
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
应聘教师推荐信
2013/10/31 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
小学生校园广播稿
2014/09/28 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
校园运动会广播稿
2015/08/19 职场文书