0
$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に変換しようとしました(string)$languageが、それも修正されませんでした。

4

1 に答える 1

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));
于 2011-09-06T13:42:46.690 に答える