要实现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 >
|