2012-12-21 44 views
0

我想翻譯從客戶端發送到服務器的單詞。據谷歌的文檔,你可以如下使用:Google的翻譯API(REST)和PHP

GET https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&q=Hello%20world 

,它會與下面的JSON對象作出迴應:

{ 
    "data": { 
     "translations": [ 
      { 
       "translatedText": "Hallo Welt" 
      } 
     ] 
    } 
} 

我在PHP中使用下列內容:

$data = file_get_contents('https://www.googleapis.com/language/translate/v2?key=KEY8&source=en&target=ru&q='.$to_be_translated); 
$data = json_decode($data); 
$translated = $data->translations->translatedText; 

這不起作用,但如果我使用他們的JS示例,那麼我確實得到了所需的結果,因此翻譯設置沒問題,問題必須出現在我的PHP腳本中。

我也試過:

$data = $_GET['https://www.googleapis.com/language/translate/v2?key=KEY8&source=en&target=ru&q='.$to_be_translated]; 

,但無濟於事。有什麼建議麼?

+1

它以什麼方式不起作用?你有錯誤信息嗎? – Cfreak

+0

http://code.google.com/p/google-api-php-client/source/browse/trunk/examples/translate/simple.php – underscore

+0

$ translation變量爲空。 – jmarais

回答

0

我建議:

$request = 'https://www.googleapis.com/language/translate/v2?key=KEY8&source=en&target=ru&q='.$to_be_translated; 

var_dump($request); 

複製的字符串,以「https」開頭,從這個的var_dump返回,並將其放置到一個新的Web瀏覽器窗口......你怎麼在瀏覽器中找回?如果它看起來有效,那麼繼續下一步。如果它不起作用,那麼你正在組裝你的$ request請求。

$response = file_get_contents($request); 

var_dump($response); 

$ response是什麼樣子的?一個錯誤?或者它看起來像有效的JSON?如果其有效的JSON ...

$data = json_decode($response); 

var_dump($data); 

什麼是$數據看起來像這裏?好?任何JSON解析異常?

$translated = $data->translations->translatedText; 

var_dump($translated); 

什麼是$翻譯的樣子?

+0

謝謝,我遵循這個,它給了正確的輸出,直到'$ data = json_decode($ response);'和var_dump看起來如下:'object(stdClass)#1(1){[「data」] = > object(stdClass)#2(1){[「translations」] => array(1){[0] => object(stdClass)#3(1){[「convertedText」] => string(5) toets「}}}}',這是正確的翻譯,但在'$ translated = $ data-> translations-> translatedText'之後,'它給出NULL的輸出。我試過'$ translated = $ data-> translations [0] - > translatedText;'但仍然一樣。所以,看起來$ data是好的,但是我怎樣才能從中翻譯出來的文本呢? – jmarais

+0

請輸出serialize($ data) – Geremy

+0

它是:'string(132)「O:8:」stdClass「:1:{s:4:」data「; O:8:」stdClass「:1: {S:12: 「翻譯」;一個:1:{I 0,O:8: 「stdClass的」:1:{S:14: 「translatedText」; S:5: 「toets」;}}}}」 ' – jmarais