关于这个翻译小工具的算法,很多人问我,因为有段时间了,最近一直没更新

下面就几个函数做些说明,以方便大家转换成其他语言。

整个算法不是我的,我只是把google的js翻译成php,就是需要总要研究google的js,

最开始使用在github上面,参考网址https://github.com/Stichoza/google-translate-php/issues/32

后来因为总要研究测试google的算法,就自己弄了这个小工具,

工具地址:http://www.tastemylife.com/

define('GOOGLE_URL', 'https://translate.google.cn/translate_a/');//这里定义google的网址
define('UA', isset($_SERVER['HTTP_USER_AGENT']) && !empty($_SERVER['HTTP_USER_AGENT']) ?  $_SERVER['HTTP_USER_AGENT'] : 'Mozilla/5.0 (Android; Mobile; rv:22.0) Gecko/22.0 Firefox/22.0');session_start();//这个函数是无符号右移
//参考http://www.shangxueba.com/jingyan/1911053.html
function shr32($x, $bits)
{if($bits <= 0){return $x;}if($bits >= 32){return 0;}$bin = decbin($x);$l = strlen($bin);if($l > 32){$bin = substr($bin, $l - 32, 32);}elseif($l < 32){$bin = str_pad($bin, 32, '0', STR_PAD_LEFT);}return bindec(str_pad(substr($bin, 0, 32 - $bits), 32, '0', STR_PAD_LEFT));
}        //这个就是javascript的charCodeAt
//PHP版本的在这里http://www.phpjiayuan.com/90/225.html
function charCodeAt($str, $index)
{$char = mb_substr($str, $index, 1, 'UTF-8');if (mb_check_encoding($char, 'UTF-8')){$ret = mb_convert_encoding($char, 'UTF-32BE', 'UTF-8');return hexdec(bin2hex($ret));}else{return null;}
}//直接复制google
function RL($a, $b)
{for($c = 0; $c < strlen($b) - 2; $c +=3) {$d = $b{$c+2};$d = $d >= 'a' ? charCodeAt($d,0) - 87 : intval($d);$d = $b{$c+1} == '+' ? shr32($a, $d) : $a << $d;$a = $b{$c} == '+' ? ($a + $d & 4294967295) : $a ^ $d;}return $a;
}//静态TKK,动态获取请使用另外一个方法
function TKK()
{$a = 561666268;$b = 1526272306;return 406398 . '.' . ($a + $b);
}//直接复制google
function TL($a)
{$tkk = explode('.', TKK());$b = $tkk[0];for($d = array(), $e = 0, $f = 0; $f < mb_strlen ( $a, 'UTF-8' ); $f ++) {$g = charCodeAt ( $a, $f );if (128 > $g) {$d [$e ++] = $g;} else {if (2048 > $g) {$d [$e ++] = $g >> 6 | 192;} else {if (55296 == ($g & 64512) && $f + 1 < mb_strlen ( $a, 'UTF-8' ) && 56320 == (charCodeAt ( $a, $f + 1 ) & 64512)) {$g = 65536 + (($g & 1023) << 10) + (charCodeAt ( $a, ++ $f ) & 1023);$d [$e ++] = $g >> 18 | 240;$d [$e ++] = $g >> 12 & 63 | 128;} else {$d [$e ++] = $g >> 12 | 224;$d [$e ++] = $g >> 6 & 63 | 128;}}$d [$e ++] = $g & 63 | 128;}}$a = $b;for($e = 0; $e < count ( $d ); $e ++) {$a += $d [$e];$a = RL ( $a, '+-a^+6' );}$a = RL ( $a, "+-3^+b+-f" );$a ^= $tkk[1];if (0 > $a) {$a = ($a & 2147483647) + 2147483648;}$a = fmod ( $a, pow ( 10, 6 ) );return $a . "." . ($a ^ $b);
}function translate($sl, $tl, $q, $param = 't?client=webapp', $method = 'get')
{$tk = TL($q);$q = urlencode(stripslashes($q));$resultRegexes = array('/,+/'  => ',','/\[,/' => '[',);    $url = GOOGLE_URL . $param . "&sl=".$sl."&tl=".$tl."&hl=".$tl."&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&dt=at&ie=UTF-8&oe=UTF-8&otf=2&ssel=0&tsel=0&kc=1&tk=". $tk ;if ( $method == 'get' ) $url .= "&q=" . $q;$output = sendHttpRequest($url, $method == 'get' ? 0 : 1, $method == 'get' ? '' : "&q=" . $q, array('User-Agent' => UA));return $output;}

GOOGLE翻译算法解析,最新google谷歌免费翻译算法相关推荐

  1. 知云文献翻译打不开_论文翻译小工具,一键即可免费翻译全文| 知云文献翻译、彩云小译(附安装包)...

    Ⅰ 最近正在秃头写论文,需要可以自动一键全文翻译的工具,一番询问和测试之后,强烈推荐知云文献和彩云小译. 知云文献翻译是一个软件,使用时,只需要将需要翻译的文件拉入软件页面,点击需要翻译的内容,即可以 ...

  2. Mmseg中文分词算法解析

    Mmseg中文分词算法解析 @author linjiexing 开发中文搜索和中文词库语义自己主动识别的时候,我採用都是基于mmseg中文分词算法开发的Jcseg开源project.使用场景涉及搜索 ...

  3. 视觉激光融合——VLOAM / LIMO算法解析

    视觉激光融合--VLOAM / LIMO算法解析 视觉激光融合--VLOAM / LIMO算法解析 1. VLOAM算法 1.1 总体框架 1.2 视觉里程计 1.3 激光里程计 1.4 实验结果 2 ...

  4. JAVA、PHP身份证、统一社会信用代码算法解析验证

    JAVA.PHP身份证算法解析验证 JAVA身份证号算法解析验证(待更新) JAVA统一社会信用代码算法解析验证(待更新) PHP统一社会信用代码算法解析验证 JAVA.PHP身份证算法解析: 其实上 ...

  5. B站脑机接口主流算法解析课程视频汇总

    点击上面"脑机接口社区"关注我们 更多技术干货第一时间送达 脑机接口主流算法解析课程包括四场: 课程1:SSVEP算法解析 课程2:ERP/P300算法解析 课程3:运动想象算法解 ...

  6. Google Colab——用谷歌免费GPU跑你的深度学习代码

    Google Colab简介 Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发和研究.这款工具现在可以免费使用,但是不是永久免费暂时还不确定.Google Col ...

  7. Google瓦片地图算法解析

    基本概念: 地图瓦片地址:http://mt2.google.cn/vt/lyrs=m@167000000&hl=zh-CN&gl=cn&x=420&y=193& ...

  8. Google Colab——谷歌免费GPU使用教程

    Google Colab简介 Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发和研究.这款工具现在可以免费使用.Google Colab最大的好处是给广大的AI开 ...

  9. Google地图瓦片拼图算法解析

    Google地图瓦片拼图算法解析 概述:主要是阐述如何将瓦片地图图片拼接成完整地图的一些概念以及相关算法. 基本概念: 地图瓦片地址:http://mt2.google.cn/vt/lyrs=m@16 ...

最新文章

  1. 北邮王啸:图神经网络的两面性
  2. 【玩转Ubuntu】01. Ubuntu上配置JDK
  3. 文巾解题1738. 找出第 K 大的异或坐标值
  4. python 生意参谋_GitHub - iOSDevLog/sycm: 生意参谋
  5. LiveVideoStack线上分享第三季(六):深度学习与视频编码
  6. Android之提示Failed to load WebView provider: No WebView installed
  7. 你还在担心开车看不到路标吗?我这这有个路标分类的来玩玩啊(有源码有数据集)
  8. SD-WAN三大部署方式 用户现身说法谈优劣势
  9. redhat6与7版本进入单用户模式修改root账户密码
  10. 实验四_078_刘玲志
  11. android下md5加密
  12. 百度之星冠军分享:AI图像赛事入门
  13. EasyExcel自动设置列宽
  14. Pyspark特征工程--RFormula
  15. 微信小程序如何让storage过期
  16. dd命令 刻录U盘启动
  17. 在线副业教程之 02 你学的越多,你赚的越多+你必须开始学习的5个最好的在线副业
  18. 【Java开发语言 03】第三章 面向对象编程(面向对象与面向过程+类和对象+类成员一:属性+类成员二:方法+对象的创建和使用+封装和隐藏+构造器+关键字this,package,import)
  19. 将mongodb 中的_id 转化为时间戳
  20. 深圳摇号中签后异地车牌更换深圳车牌流程

热门文章

  1. AD20 PCB导出Gerber、拼板,华秋DFM一键拼板,同理支持其他PCB EDA软件的Gerber导入与拼板
  2. PostGIS系列课程之空间约束(三)
  3. Spark Streaming读取Kafka数据的两种方式
  4. 关于Amazon AWS —— 免费的午餐不好吃
  5. 【转】osworkflow教程
  6. 电子邮件地址允许使用哪些字符?
  7. Win10域客户端强制更改壁纸
  8. 19c 单实例打补丁
  9. 安卓圆形图片控件CircleImageView的使用
  10. 区块链改革(链改)全国行动委员会第一次会议胜利召开