如何通过Bing的Translation API测试检测到的语言是否等于“EN”?

时间:2011-09-06 13:20:54

标签: php bing-api

$language = file_get_contents('http://api.microsofttranslator.com/V2/Ajax.svc/Detect?appid=APPID&text=hello');

$language = str_replace('"', '', $language);

if($language != 'en')
{
    echo 'not english';
}
{
    echo 'english';
}

所以,上面代码中发生的事情file_get_contents会输出"en",然后删除引号并比较它是否等于en。但上面代码的问题在于即使not english也会输出'en' != 'en'

知道我可能做错了吗?我还尝试将$language转换为字符串(string)$language,但这也没有解决它。

1 个答案:

答案 0 :(得分:3)

您从Bing获得的结果包含BOM或字节顺序标记,在回显时不可见。

要删除BOM,请尝试以下功能:

function removeBOM($str = "") {
    if (substr($str, 0, 3) == pack("CCC",0xef,0xbb,0xbf)) {
        $str=substr($str, 3);
    }
    return $str;
}

所以代码的第3行是:

$language = removeBOM(str_replace('"', '', $language));