不要轻易放弃。学习成长的路上,我们长路漫漫,只因学无止境。学无止境

php实现将文字与英文互相转换

碧羽墨轩 2018-11-29 15:34:34 159人围观
简介无需使用其他插件,借助百度翻译,php轻松实现将文字与英文互相转换。代码极其简单使用POST发送数据,默认汉翻英,其他翻汉。

//详细代码如下

function baidu($content,$language)
{
$str='';
foreach (json_decode(baidufanyi($content,$language))->trans as $v) {
$str.= $v->dst;
}
return $str;
}

/**
* 使用POST发送数据
* @param string $url 目标地址
* @param array $data 发送数据
* @param string $ua 用户代理
* @return string 响应数据
*/
function postbaidu($url = '', $data = [], $ua = '')
{
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POSTFIELDS => $data,
CURLOPT_USERAGENT => $ua,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
]);
return curl_exec($ch);
}

/**
* 判断语种
* @param str $query 查询语句
* @return str 语种
*/
function langdetect($query)
{
foreach (explode("\n", $query) as $v) {
$v = trim(substr($v, 0, 50));
if ($v) {
return json_decode(postbaidu('https://fanyi.baidu.com/langdetect', [
'query' => $v,
]))->lan;
}
}
}

/**
* 默认汉翻英,其他翻汉
* @param string $query 查询语句
* @param string $to 目标语种
* @return string 翻译结果
*/
function baidufanyi($query = '', $to = 'en')
{
$from = langdetect($query);
if ($from == 'zh' && $to == 'zh') {
$to = 'en';
}
return postbaidu('https://fanyi.baidu.com/basetrans', [
'query' => $query,
'from' => $from,
'to' => $to,
], 'Android');
}

baidu(“世界你好”,'en');//引用

注:本文转载自碧羽墨轩,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。

上一篇:php删除关联表中的无用数据

下一篇:js图片压缩加裁剪(引入方便)

文章评论