使用PHP解码Microsoft转换器API的JSON输出
发布时间:2020-12-13 17:38:52 所属栏目:PHP教程 来源:网络整理
导读:这个问题似乎特定于microsofttranslator.com所以请…任何答案,如果你可以测试它… 使用以下URL进行翻译:http://api.microsofttranslator.com/V2/Ajax.svc/TranslateArray ..我通过cURL发送了一些很棒的参数,并得到以下结果: [ { "From":"en","OriginalText
这个问题似乎特定于microsofttranslator.com所以请…任何答案,如果你可以测试它…
使用以下URL进行翻译:http://api.microsofttranslator.com/V2/Ajax.svc/TranslateArray ..我通过cURL发送了一些很棒的参数,并得到以下结果: [ { "From":"en","OriginalTextSentenceLengths":[13],"TranslatedText":"我是最好的","TranslatedTextSentenceLengths":[5] },{ "From":"en","OriginalTextSentenceLengths":[16],"TranslatedText":"你是最好的","TranslatedTextSentenceLengths":[5] } ] 当我使用json_decode($output,true);在cURL的输出上,json_decode在返回的JSON中给出了一个不合适的语法错误: json_last_error() == JSON_ERROR_SYNTAX 使用JSON返回的标头:
Cache-Control:no-cache Content-Length:244 Content-Type:application/x-javascript; charset=utf-8 Date:Sat,06 Aug 2011 13:35:08 GMT Expires:-1 Pragma:no-cache X-MS-Trans-Info:s=63644
[{"From":"en","TranslatedTextSentenceLengths":[5]},{"From":"en","TranslatedTextSentenceLengths":[5]}]
$texts = array("i am the best" => 0,"you are the best" => 0); $ch = curl_init(); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); $data = array( 'appId' => $bing_appId,'from' => 'en','to' => 'zh-CHS','texts' => json_encode(array_keys($texts)) ); curl_setopt($ch,CURLOPT_URL,$bingArrayUrl . '?' . http_build_query($data)); $output = curl_exec($ch); 解决方法
API返回错误的字节顺序标记(BOM).
字符串数据本身是UTF-8,但前缀为U FEFF,这是一个UTF-16 BOM.只需删除前两个字节和json_decode. ... $output = curl_exec($ch); // Insert some sanity checks here... then,$output = substr($output,3); ... $decoded = json_decode($output,true); 这是我的测试代码的全部内容. $texts = array("i am the best" => 0,"you are the best" => 0); $ch = curl_init(); curl_setopt($ch,1); $data = array( 'appId' => $bing_appId,'texts' => json_encode(array_keys($texts)) ); curl_setopt($ch,$bingArrayUrl . '?' . http_build_query($data)); $output = curl_exec($ch); $output = substr($output,3); print_r(json_decode($output,true)); 哪能给我 Array ( [0] => Array ( [From] => en [OriginalTextSentenceLengths] => Array ( [0] => 13 ) [TranslatedText] => 我是最好的 [TranslatedTextSentenceLengths] => Array ( [0] => 5 ) ) [1] => Array ( [From] => en [OriginalTextSentenceLengths] => Array ( [0] => 16 ) [TranslatedText] => 你是最好的 [TranslatedTextSentenceLengths] => Array ( [0] => 5 ) ) ) Wikipedia entry on BOM (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |