我正在尝试使用google trnslation apis将一些文本从英语翻译成荷兰语。我有以下代码: -
$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 :(得分: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]);
});
答案 1 :(得分:0)
使用Json Decode(采用JSON编码的字符串并将其转换为PHP变量)
var_dump(json_decode($content)); //Output is object variable
var_dump(json_decode($content, true)); //Output is array variable