PHP使用百度通用翻译API翻译文件名

在之前写的采用curl 抓取地址翻译中,翻译的内容是比中式英语还中式的翻译,虽然是不花钱的。我昨天看了一下百度翻译的通用翻译api,发现他每天少于200万字符是

本篇文章给大家谈谈PHP使用百度通用翻译API翻译文件名,以及对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

附件是相同的代码

首先下载百度翻译文件

?php

/**************************************************** * **************************

* 版权所有(c) 2015 百度公司保留所有权利

*

****************************************************** * **********************/

/**

* @文件baidu_transapi.php

* @作者mouyantao(mouyantao@baidu.com)

* @日期2015/06/23 14:32:18

*@简短的

*

**/

定义(‘CURL_TIMEOUT’, 10);

Define(‘URL’, ‘http://api.fanyi.baidu.com/api/trans/vip/translate’);

定义(’APP_ID’,’您的APP_ID’); //替换成你的APPID

Define(‘SEC_KEY’, ‘your SEC_KEY’);//替换为你的密钥

//翻译条目

函数翻译($query,$from,$to)

{

$args=数组(

‘q’=$查询,

‘appid’=APP_ID,

‘盐’=兰特(10000,99999),

‘来自’=$来自,

‘到’=$到,

);

$args[‘sign’]=buildSign($query, APP_ID, $args[‘salt’], SEC_KEY);

$ret=调用(URL, $args);

$ret=json_decode($ret, true);

返回$ret;

}

//加密

函数buildSign($query, $appID, $salt, $secKey)

{/*{{{*/

$str=$appID 。 $查询。 $盐。 $secKey;

$ret=md5($str);

返回$ret;

}/*}}}*/

//发起网络请求

函数调用($url, $args=null, $method=’post’, $testflag=0, $timeout=CURL_TIMEOUT, $headers=array())

{/*{{{*/

$ret=假;

$i=0;

while($ret===false)

{

如果($i 1)

休息;

如果($i 0)

{

睡眠(1);

}

$ret=callOnce($url, $args, $method, false, $timeout, $headers);

$i++;

}

返回$ret;

PHP使用百度通用翻译API翻译文件名

}/*}}}*/

函数callOnce($url, $args=null, $method=’post’, $withCookie=false, $timeout=CURL_TIMEOUT, $headers=array())

{/*{{{*/

$ch=curl_init();

if($method==’发布’)

{

$数据=转换($args);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_POST, 1);

}

别的

{

$数据=转换($args);

如果($数据)

{

if(stripos($url, ‘?’) 0)

{

$url .=’$data’;

}

别的

{

$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);

}

如果($withCookie)

{

curl_setopt($ch, CURLOPT_COOKIEJAR, $_COOKIE);

}

$r=curl_exec($ch);

卷曲_关闭($ ch);

返回$r;

}/*}}}*/

函数转换($args)

{/*{{{*/

$数据=”;

if (is_array($args))

{

foreach($args 为$key=$val)

{

if (is_array($val))

{

foreach($val 为$k=$v)

{

$data .=$key.'[‘.$k.’]=’.rawurlencode($v).”;

}

}

别的

{

$data .=’$key=’.rawurlencode($val).”;

PHP使用百度通用翻译API翻译文件名

}

}

返回修剪($数据,”);

}

返回$args;

}/*}}}*/

接下来调用该文件

?php

require_once ‘baidu_transapi.php’;

设置时间限制(0);

//修改test目录下的文件名

//目录是相对于文件的。

改变(’测试’);

/**

* 将文件名转换为中文

* @param $dir string 相对于当前目录的文件夹(必填参数)

*/

功能更改($dir=”)

{

if(is_dir($dir)) //判断是否是目录

{

if($handler=opendir($dir)) //读取所有文件夹中的文件

{

while( ($filename=readdir($handler)) !==false )

{

//筛选。和.两个文件

if($filename==’.’ || $filename==’.’) 继续;

$name=substr($filename, 0, strrpos($filename,’.’)); //获取文件名

$suffix=substr($filename, strrpos($filename,’.’)); //获取文件的后缀

$结果=翻译($name,’auto’,’zh’); //获取翻译后的新名字

$new_name=iconv(‘UTF-8′,’GBK’,@$result[‘trans_result’][0][‘dst’]);

如果(空($new_name))继续;

$new_filename=$dir.’/’.$new_name.$suffix; //新文件名路径

$old_filename=$dir.’/’.$filename; //旧文件名的路径

if(file_exists($new_filename) || !file_exists($old_filename))

{

//判断新文件是否存在或者旧文件因不再存在而无法修改。

echo ‘({$new_filename}) 已存在或({$old_filename}) 不存在’.’br/’;

}别的{

//重命名文件

@rename($old_filename, $new_filename);

}

}

//释放资源

关闭($处理程序);

回显“成功”;

}别的{

echo ‘{$dir} 打开失败’;

}

}别的{

echo ‘{$dir} 不是目录’;

}

}

这样可以更好的解决翻译问题

但是我发现除了中文和英文之外,其他语言读起来都是乱码。我搜索并没有找到合适的解决方案。因为他从一开始就读错了,我本来考虑用正则表达式,但是不行。这需要解决。如果你有好的解决方案,我们可以一起讨论。

如有任何错误,请报告

用户评论

PHP使用百度通用翻译API翻译文件名
满心狼藉

这 really 太赞了!我还在愁怎么翻译那些文件呢,用 百度翻译 API 做到这个效果简直要太方便了!

    有17位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
回忆未来

想问一下,如果文件名很长的话,API 会处理吗?有没有对字符长度的限制?

    有18位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
雪花ミ飞舞

这篇文章写得太棒了,讲解清楚易懂,我今天就试用一下 PHP 使用 百度通用翻译api 翻译文件名的方法!

    有13位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
孤独症

我也遇到过这个情况,百度翻译 API 的效率确实很不错,翻译效果也还可以,只是希望能有一些更人性化的地方,比如提供不同语言版本的 UI 或一些额外的功能,方便一些新手使用。

    有18位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
拥菢过后只剰凄凉

感觉这个方法挺有用的!尤其对于我们经常需要处理多语言文件的网站来说真是太棒了!

    有12位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
咆哮

我试了一下这篇文章的方法,但是总觉得翻译结果有点生硬,不知道有没有什么技巧能提高翻译质量?

    有7位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
墨染年华

其实可以用一些开源的翻译工具来实现类似的功能,例如 Google Translate API,效果也不错。 但 百度通用翻译api 更方便,毕竟是国内产品嘛!

    有20位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
拥抱

这篇文章确实解决了我的一个小难题,感谢分享!我已经开始在项目中使用这个方法,效率大大提升了!

    有15位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
墨染殇雪

我有点担心安全问题,将文件名提交给百度 API 数据是否会被泄露?有没有什么保护措施保障信息安全?

    有19位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
顶个蘑菇闯天下i

我觉得这篇文章的重点应该是如何安全地使用 百度通用翻译api 以及如何提高翻译质量,而不是仅仅介绍使用方法。

    有16位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
落花忆梦

用 百度通用翻译api 翻译文件名可以节省很多时间和精力,但是需要注意翻译精度的问题,避免造成误会或错误。

    有15位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
無極卍盜

这篇文章太棒了!以后再遇到类似的问题,我可以参考一下这篇攻略省下不少时间!

    有13位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
伪心

我之前就用了一个 WordPress 插件来实现自动翻译文件名的功能,效果不错。 不过 百度通用翻译api 确实更加灵活和便捷!

    有17位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
眉黛如画

学习一下这个技巧,感觉以后开发多语言项目会更加方便。

    有11位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
暮染轻纱

对新手用户来说,这篇博客文可能有点过于简略,最好能添加一些更详细的解释和例子,帮助他们更好地理解和应用。

    有15位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
话少情在

我觉得 百度通用翻译api 的安全性问题需要引起更多重视,尤其是在处理敏感信息的文件名时。 需要加强安全措施和用户教育!

    有7位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
麝香味

这个方法非常有用,特别适合像我一样经常需要处理多语言文件的开发者!强烈推荐!

    有17位网友表示赞同!

PHP使用百度通用翻译API翻译文件名
傲世九天

文章内容清晰易懂,介绍的步骤也很详细,我已经成功使用 百度通用翻译api 来翻译我的文件名了,效果很好!

    有14位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/126305.html

(0)
小su's avatar小su
上一篇 2024年9月1日 下午9:29
下一篇 2024年9月1日 下午9:30

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注