Google 翻译 returns 奇怪的字符串?

Google Translate returns weird string?

所以我试图从 google 取回一个字符串,但如您所见进行了翻译

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;
    }

但是如果参数设置为

,这个returns一个像这样丑陋的字符串
Print(Translate("en","es","Hello"));

[[["Hola","Hello",null,null,1]],null,"en"]

根据 "scattered" 和糟糕的个人使用文档,无需支付企业费用,这应该可行

你需要使用json_decode然后return数组的第三层。

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];
}

returned JSON是两层中的,翻译后的值是第一个值。所以你需要 [0][0] 才能达到正确的水平,然后 [0] 才能获得价值。

如果您不确定要访问什么,您可以随时在 Translate 函数中对 $array 值使用 print_r 来查看它包含的内容。