0

由于 Google Translate API 不再免费,我尝试从http://mymemory.translated.net/doc/spec.php获取翻译

例如我的 PHP 页面

header("Cache-Control: no-cache");
header("Pragma: no-cache");
header('Content-type: application/json');
$_POST['value']=="Hello everybody";
// URI to get italian from english
$translate_it=json_decode(file_get_contents("http://mymemory.translated.net/api/get?q=".$_POST['value']."&langpair=en|it"));

我不是对象开发人员,也不知道如何访问数据...

我怎样才能从中只获得“翻译”字段? http://mymemory.translated.net/api/get?q=Hello%20everybody&langpair=en|it

4

2 回答 2

2

您收到错误是因为您正在使用echo.

要查看内容,请尝试使用:

var_dump($translate_it);

使用新 json 变量的一种方法是这样

$translate_it->responseData;

这是一个翻译:

echo $translate_it->matches[0]->translation;

更新:

您可以使用 for each 循环匹配:

foreach ($translate_it->matches[0] as $obj){
   echo $obj->translation;
}
于 2012-04-16T16:56:11.613 回答
0

json_decode会,但默认返回一个对象 - stdClass。第二个(可选)参数将让它返回一个数组。无论哪种方式,它都不仅仅是一个简单的字符串,当它被解码时。

print_r($translate_it),或var_dump($translate_it)将显示对象或数组的结构。

于 2012-04-16T16:58:57.193 回答