ThinkPHP调用百度翻译类实现在线翻译
要实现ThinkPHP在线翻译功能,需要先在百度开发者中心注册一个APIkey,具体实现代码如下:
action代码部分:
<?php classFanyiActionextendsAction{ publicfunction_empty(){ header("HTTP/1.0404NotFound"); $this->display("Public:404"); } publicfunctionindex() { $User=A("Index"); $User->head(); $User->right(); $User->footer(); $this->display(); } publicfunctionfanyi() { $value=$_POST['value']; $from="auto"; $to="auto"; $value_code=urlencode($value); $appid="xxxxxxxx";//这里填写你在百度上申请的APIkey $languageurl="http://openapi.baidu.com/public/2.0/bmt/translate?client_id=".$appid."&q=".$value_code."&from=".$from."&to=".$to; $text=json_decode($this->language_text($languageurl)); $text=$text->trans_result; $rs=$text[0]->dst; $this->assign('value',$value); $this->assign('rs',$rs); $User=A("Index"); $User->head(); $User->right(); $User->footer(); $this->display(index); } publicfunctionlanguage_text($url)//获取目标URL所打印的内容 { if(!function_exists('file_get_contents')) { $file_contents=file_get_contents($url); } else { $ch=curl_init(); $timeout=5; curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); $file_contents=curl_exec($ch); curl_close($ch); } return$file_contents; } } ?>
html代码部分:
<divid="content"> <divstyle="padding:5px;"> <formaction="__APP__/fanyi/"method="POST"name="fanyi"> <p>原文:</p> <textareaname="value"id="yuanwen"rows="10"cols="80"style="padding:5px;width:661px;height:217px;">{$value}</textarea> <inputtype="submit"class="search-submit"value="翻 译"style="text-align:center;"> <inputtype="reset"onclick="reset()"class="search-submit"value="清 空"style="text-align:center;"> </form> <p>译文:</p> <textareaname="rs"id="yiwen"rows="10"cols="80"style="padding:5px;width:661px;height:217px;">{$rs}</textarea></div> </div>