php 百度翻译接口 脚本执行
来源:互联网 发布:网络侵权的类型 编辑:程序博客网 时间:2024/05/16 01:21
闲来无事 研究了百度翻译的API接口,我是用shell脚本的形式执行
php translate.php -a”中国”
开始执行报错,原来没有编码转换utf8,转换完成就ok了,具体参见代码
执行 php translate.php -a”中国”
结果 string(5) “China”
<?phpdefine("CURL_TIMEOUT", 10);define("URL", "http://api.fanyi.baidu.com/api/trans/vip/translate");define("APP_ID", "XXXX"); //替换为您的APPIDdefine("SEC_KEY", "XXXX");//替换为您的密钥//翻译入口function translate($query, $from = 'ch', $to = 'en'){ $args = array( 'q' => $query, 'appid' => APP_ID, 'salt' => rand(10000,99999), 'from' => $from, 'to' => $to, ); $args['sign'] = buildSign($query, APP_ID, $args['salt'], SEC_KEY); $ret = call(URL, $args); $ret = json_decode($ret, true); return $ret;}//加密function buildSign($query, $appID, $salt, $secKey){/*{{{*/ $str = $appID . $query . $salt . $secKey; $ret = md5($str); return $ret;}/*}}}*///发起网络请求function call($url, $args=null, $method="post", $testflag = 0, $timeout = CURL_TIMEOUT, $headers=array()){/*{{{*/ $ret = false; $i = 0; while($ret === false) { if($i > 1) break; if($i > 0) { sleep(1); } $ret = callOnce($url, $args, $method, false, $timeout, $headers); $i++; } return $ret;}/*}}}*/function callOnce($url, $args=null, $method="post", $withCookie = false, $timeout = CURL_TIMEOUT, $headers=array()){/*{{{*/ $ch = curl_init(); if($method == "post") { $data = convert($args); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_POST, 1); } else { $data = convert($args); if($data) { if(stripos($url, "?") > 0) { $url .= "&$data"; } else { $url .= "?$data"; } } } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if(!empty($headers)) { curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } if($withCookie) { curl_setopt($ch, CURLOPT_COOKIEJAR, $_COOKIE); } $r = curl_exec($ch); curl_close($ch); return $r;}/*}}}*/function convert(&$args){/*{{{*/ $data = ''; if (is_array($args)) { foreach ($args as $key=>$val) { if (is_array($val)) { foreach ($val as $k=>$v) { $data .= $key.'['.$k.']='.rawurlencode($v).'&'; } } else { $data .="$key=".rawurlencode($val)."&"; } } return trim($data, "&"); } return $args;}/*}}}*///获取shell命令传过来的参数$parma = getopt('a:b:');//转换为utf8编码$item = iconv('GB2312', 'UTF-8', $parma['a']);$res = translate($item, 'ch', 'en');var_dump($res['trans_result'][0]['dst']);
点赞吧 哈哈
0 0
- php 百度翻译接口 脚本执行
- 百度翻译接口
- 百度翻译接口
- shell 脚本为php 执行订单过期接口
- shell 脚本为php 执行订单过期接口
- 百度翻译C#API接口
- python调用百度翻译接口
- 百度翻译接口JAVA版
- Google翻译PHP接口
- 百度翻译API - PHP实现
- php执行shell脚本
- PHP执行shell脚本
- linux 执行php脚本
- PHP脚本执行过程
- php脚本执行流程
- php自动执行脚本
- php 自动执行脚本
- php 异步执行脚本
- Base64加密
- 记一只猿boy的编程成长之路
- 取消UICollectionView的隐式动画
- C++ char数组
- Jetty 加载资源的相关问题
- php 百度翻译接口 脚本执行
- android退出程序
- 四,命名规则
- 和Android相关的java面试集锦
- Java_杂记_2
- java30天速成方法
- 自定义View 笔记
- 获取百分数
- HBase Rowkey的散列与预分区设计