2012-04-16 22 views
0

由於谷歌翻譯API不是免費的了,我嘗試從http://mymemory.translated.net/doc/spec.php如何使用PHP解析MyMemory翻譯中的JSON?

我的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")); 

我不是一個對象developper,而我卻不知道如何以訪問數據...

我怎樣才能從這個領域的「翻譯」? http://mymemory.translated.net/api/get?q=Hello%20everybody&langpair=en|it

回答

2

由於您使用的是echo,因此出現錯誤。

看到的內容,請嘗試使用:

var_dump($translate_it); 

一種方法使用新的JSON變量想這

$translate_it->responseData; 

下面是一個翻譯:

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

更新:

您可以通過循環使用每個比賽:

foreach ($translate_it->matches[0] as $obj){ 
    echo $obj->translation; 
} 
+0

謝謝,但如何獲得翻譯?如何建立方式? $ translate_it-> responseData [ '翻譯']; ? – Valky 2012-04-16 17:02:05

+0

@Valky看到我的最後一行。你將不得不通過匹配數組來查看你需要的數據。使用'var_dump($ translate_it)'作爲參考 – Ibu 2012-04-16 17:11:15

+0

完美,我看...如何做一個foreach()查看所有匹配[]翻譯? – Valky 2012-04-16 17:23:21

0

json_decode意願,但默認情況下返回一個對象 - stdClass。第二個(可選)參數將返回一個數組。無論哪種方式,解碼後不僅僅是一個簡單的字符串。

print_r($translate_it)var_dump($translate_it)將顯示對象或數組的結構。