2017-02-09 11 views
0

私は英語からオランダ語への翻訳にgoogle trnslation apisを使用しようとしています。translate.googleapis.comからjson形式でデータを取得するにはどうすればよいですか?

$text = urlencode($text); 
$from_lan = 'en'; 
$to_lan = 'nl'; 
$url = "https://translate.googleapis.com/translate_a/single?client=p&sl=".$from_lan."&tl=".$to_lan."&dt=t&q=".$text; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$content = curl_exec($ch); 
print_r($content); 

私は取得していますデータがある: - - :

[[["uitzicht","view",,,2]],,"en"] 

それは、配列やJSONデータではありません私は、次のコードを持っています。それは文字列です。私はJSON形式でデータを取得できますか

+0

それはアレイまたはJSONデータではないが。配列のように見える –

+0

出力が配列の場合は、json_encode()を使用して文字列をjsonに変換します。 –

+0

データは実際には角かっこで囲まれた文字列です。 @Anant – Saswat

答えて

0

は、重複カンマのは、正規表現を使用して削除します。その後、jsonにエンコード/解析します。これはjsで動作しますが、PHPではテストされていません。

ここでは比較のためのJS/jQueryのバージョンは次のとおり

// error 
$.ajax({ 
    url: "https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=nl&dt=t&q=view", 
    dataType: "text" 
    }) 
    .done(function(data) { 
    console.log(JSON.parse(data)[0][0][0]); 
    }); 

// works (replaces duplicate comma's with single ones) 
$.ajax({ 
    url: "https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=nl&dt=t&q=view", 
    dataType: "text" 
    }) 
    .done(function(data) { 
    console.log(JSON.parse(data.replace(/,+/g, ","))[0][0][0]); 
    }); 
0

使用JSONデコード(JSONエンコードされた文字列を取得し、PHP変数に変換)

var_dump(json_decode($content)); //Output is object variable 
var_dump(json_decode($content, true)); //Output is array variable 
関連する問題