$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
,但这也没有解决它。
答案 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));