所以我试图从谷歌中获取一个字符串,但正如你所看到的那样翻译
function Translate($fromLang,$toLang,$text){
$texts = file_get_contents(
"https://translate.googleapis.com/translate_a/single?client=gtx&sl="
. $fromLang .
"&tl=" .
$toLang . "&dt=t&q=" . $text);
return $texts;
}
但如果参数设置为
,则返回一个如此丑陋的字符串Print(Translate("en","es","Hello"));
[[["Hola","Hello",null,null,1]],null,"en"]
根据"分散"关于个人使用的不良文件而不支付企业费用这应该有效
答案 0 :(得分:3)
您需要使用json_decode
,然后返回数组的第三级。
function Translate($fromLang,$toLang,$text){
$texts = file_get_contents("https://translate.googleapis.com/translate_a/single?client=gtx&sl=" . $fromLang . "&tl=" . $toLang . "&dt=t&q=" . $text);
$array = json_decode($texts, TRUE);
return $array[0][0][0];
}
返回的JSON是两个级别,翻译的值是该值的第一个值。因此,您需要[0][0]
才能达到正确的级别,然后[0]
才能获得该值。
如果您不确定要访问的内容,可以始终使用print_r
上的Translate
函数中的$array
来查看其中包含的内容。