已修复。谢谢杰克的解决方案。请查看前端网址:www.printiger.net.nz/flashcard/
该代码用于从mp3中获取单个汉字的translate.google.com。我正在使用脚本绕过谷歌的跨域策略。我尝试过urlencode、rawurlencode、utf8_encode、utf8_encode和urlencode以及curl_escape的组合,这看起来不像在服务器上安装php。
下面是代码:
<?php
$q=$_GET['url'];
header('Content-Type: audio/mp3');
$curl=curl_init();
$q= utf8_encode($q);$filename=utf8_encode("http://translate.google.com/translate_tts?tl=zh_CN&q=");
$filename=$filename.urlencode($q);
curl_setopt($curl, CURLOPT_URL, $filename);
$voice = curl_exec($curl);
curl_close($curl);
echo $voice;
?>您可以收听结果这里。听起来应该更接近“太阳”。但是,您可以看到这里,如果我有php $filestring而不是$voice,则链接的格式是正确的,并且工作正常。简单的重定向也会给出相同的结果,但不适合我的目的。
发布于 2014-07-01 01:59:58
我不知道为什么,但显然Google检查了用户代理;以下内容在我的机器上运行得很好:
$url = 'http://translate.google.com/translate_tts?' . http_build_query(array(
'tl' => 'zh_CN',
'q' => $_GET['url'],
));
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
));
header('Content-Type: audio/mp3');
curl_exec($ch);生成的音频为您提供的示例生成"san1“。
https://stackoverflow.com/questions/24501298
复制相似问题