3

私は2つの文字列を持っています(同じはずです)。1 つは API の結果から取得され、もう 1 つはユーザーが入力します。私はそれらを比較しようとしていますが、失敗しています。var_dump すると、次のようになります。

var_dump($str1);
var_dump($str2);

string(21) "Software & Technology" 
string(25) "Software & Technology"

$str2 の長さが正しくないことに注意してください。ここで何が起こっているか知っている人はいますか?

4

2 に答える 2

11

文字列の 1 つにHTML アンパサンド文字が含まれているようです&。文字列を比較する前にhtml_entity_decodeを使用する必要があります。

if (html_entity_decode($str1) == html_entity_decode($str2)) {
    // ...
}

ライブデモ: http://ideone.com/pkWEJC

于 2013-04-09T17:37:43.940 に答える
0

html_entity_decode を使用すると、アンパサンド (およびその他の文字) の問題に対処でき、strcmp を使用すると、残りの問題を処理できます。

if (strcmp(html_entity_decode($str1), html_entity_decode($str2)) == 0) {
    // ..
}
于 2015-01-11T16:35:47.443 に答える