分享一个无需Api Key的在线翻译类

在新的一年里,我决定——少写博客多写代码……毕竟文字那是文人玩的东西,我一敲代码的要写点东西真是半天憋不出一个字,别说有多难受了!所以我今后会把重心转移到技术方面,争取做出更多作品,而博客的更新,可能会减少到一周一篇,至于博客的内容,更多的则会是记录我之后学习的过程以及相关学习笔记。

进入正题,今天分享一个 php 的翻译类模块,这个模块是之前在 thinkphp 的论坛里淘到的。小试了一下,效果非常不错!于是果断搬过来收藏。

  1. <?php  
  2. // +----------------------------------------------------------------------
  3. // | PHP MVC FrameWork v1.0 在线翻译类 使用百度翻译接口 无需申请Api Key
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2014-2099 http://qiling.org All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8. // +----------------------------------------------------------------------
  9. // | Author: qiling <70419470@qq.com> 2015年4月13日 下午2:22:15
  10. // +----------------------------------------------------------------------
  11. /**
  12.  * 在线翻译类
  13.  * @author qiling <70419470@qq.com>
  14.  */
  15. class Translate {  
  16. /**
  17.      * 支持的语种
  18.      * @var ArrayAccess
  19.      */
  20. static $Lang = Array (  
  21.             'auto' => '自动检测',  
  22.             'ara' => '阿拉伯语',  
  23.             'de' => '德语',  
  24.             'ru' => '俄语',  
  25.             'fra' => '法语',  
  26.             'kor' => '韩语',  
  27.             'nl' => '荷兰语',  
  28.             'pt' => '葡萄牙语',  
  29.             'jp' => '日语',  
  30.             'th' => '泰语',  
  31.             'wyw' => '文言文',  
  32.             'spa' => '西班牙语',  
  33.             'el' => '希腊语',  
  34.             'it' => '意大利语',  
  35.             'en' => '英语',  
  36.             'yue' => '粤语',  
  37.             'zh' => '中文'   
  38.     );  
  39. /**
  40.      * 获取支持的语种
  41.      * @return array 返回支持的语种
  42.      */
  43. static function getLang() {  
  44. return self::$Lang;  
  45.     }  
  46. /**
  47.      * 执行文本翻译
  48.      * @param string $text 要翻译的文本
  49.      * @param string $from 原语言语种 默认:中文
  50.      * @param string $to 目标语种 默认:英文
  51.      * @return boolean string 翻译失败:false 翻译成功:翻译结果
  52.      */
  53. static function exec($text, $from = 'zh', $to = 'en') {  
  54. // http://fanyi.baidu.com/v2transapi?from=zh&query=%E7%94%A8%E8%BD%A6%E8%B5%84%E8%AE%AF&to=fra
  55. $url = "http://fanyi.baidu.com/v2transapi";  
  56. $data = array (  
  57.                 'from' => $from,  
  58.                 'to' => $to,  
  59.                 'query' => $text
  60.         );  
  61. $data = http_build_query ( $data );  
  62. $ch = curl_init ();  
  63.         curl_setopt ( $ch, CURLOPT_URL, $url );  
  64.         curl_setopt ( $ch, CURLOPT_REFERER, "http://fanyi.baidu.com" );  
  65.         curl_setopt ( $ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:37.0) Gecko/20100101 Firefox/37.0' );  
  66.         curl_setopt ( $ch, CURLOPT_HEADER, 0 );  
  67.         curl_setopt ( $ch, CURLOPT_POST, 1 );  
  68.         curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );  
  69.         curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );  
  70.         curl_setopt ( $ch, CURLOPT_TIMEOUT, 10 );  
  71. $result = curl_exec ( $ch );  
  72.         curl_close ( $ch );  
  73. $result = json_decode ( $result, true );  
  74. if (!isset($result ['trans_result'] ['data'] ['0'] ['dst'])){  
  75. return false;   
  76.         }  
  77. return $result ['trans_result'] ['data'] ['0'] ['dst'];  
  78.     }  
  79. }  
  80. // 使用示例:
  81. echo Translate::exec ( "你好,世界!" );  

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏安恒信息

安恒信息助您巧妙应对“破壳漏洞”

继今年四月的“Openssl心脏流血”漏洞之后,另一个重大互联网威胁于9月24日爆发,GNU Bash(Bourne again shell)4.3及之前版本在...

2836
来自专栏闰土大叔

代码里注释写太多,会挨打吗?

前几天,有个同行朋友在我的微信上留言,问我项目代码里注释写太多会挨打吗?顺手还给我甩了一张截图,上面密密麻麻的全是手工注释。

2634
来自专栏Android自学

我是一个线程

1366
来自专栏SDNLAB

SDNLAB技术分享(十一):VXLAN基础知识

? 之前Arista在欧洲阶段性的有ATF的类似技术论坛的会议, ARISTA TECHNICAL FORUM, 后来到了美国和APAC, 名字改了, 改为C...

36712
来自专栏FreeBuf

WPA2 安全协议惊现高危漏洞,几乎涉及所有 WiFi 设备(附固件升级列表)

近日,鲁汶大学的研究人员 Mathy Vanhoef 在 WPA2 协议中发现了严重的安全漏洞,这对无线网络的安全造成了极大的考验。本文简要介绍了此次攻击的技术...

2319
来自专栏FreeBuf

揭秘:黑客反击战APT-on-APT分析报告

电影《古惑仔》中,我们常常看到黑社会团体之间的暴力冲突。而在网络空间里,你见过APT(高级持续性威胁)黑客组织互掐吗? 黑客组织Naikon Naikon是活跃...

2165
来自专栏Youngxj

PCQQ8.8正式版下载发布集成式会话个人资料卡全新改版

1582
来自专栏大数据文摘

泄露数据中的秘密:中国网民的密码设置习惯

1422
来自专栏黑白安全

摩托罗拉C118瞬间被改造成伪基站

注:资料来源自网络收集并非原创。其实也不是什么太新鲜的东西了只是看论坛内没有才整理一下拿来分享。

3243
来自专栏程序员互动联盟

【联盟正能量】遇到解决不了的问题咋办?

程序员互动联盟就是为广大的编程爱好者提供一个自学平台,既然是自学那么小伙伴们肯定会遇到各种各样的问题,联盟会提供以下几种通道帮助帮助小伙伴答疑释惑 ? 出现一个...

3027

扫码关注云+社区