要实现ThinkPHP在线翻译功能,需要先在百度开发者中心注册一个API key,具体实现代码如下:
action代码部分:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
<?php class FanyiAction extends Action { public function _empty(){ header( "HTTP/1.0 404 Not Found" ); $this ->display( "Public:404" ); } public function index() { $User = A( "Index" ); $User ->head(); $User ->right(); $User ->footer(); $this ->display(); } public function fanyi() { $value = $_POST [ 'value' ]; $from = "auto" ; $to = "auto" ; $value_code =urlencode( $value ); $appid = "xxxxxxxx" ; //这里填写你在百度上申请的API key $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); } public function language_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代码部分:
1
2
3
4
5
6
7
8
9
10
11
12
|
< div id = "content" > < div style = "padding:5px;" > < form action = "__APP__/fanyi/" method = "POST" name = "fanyi" > < p >原文:</ p > < textarea name = "value" id = "yuanwen" rows = "10" cols = "80" style = "padding:5px;width: 661px; height: 217px;" >{$value}</ textarea > < input type = "submit" class = "search-submit" value = "翻 译" style = "text-align:center;" > < input type = "reset" onclick = "reset()" class = "search-submit" value = "清 空" style = "text-align:center;" > </ form > < p >译文:</ p > < textarea name = "rs" id = "yiwen" rows = "10" cols = "80" style = "padding:5px;width: 661px; height: 217px;" >{$rs}</ textarea > </ div > </ div > |