字符串中的&符号导致长度/比较不正确

use*_*752 2 php string urlencode urldecode

我有两个字符串(应该是相同的).一个是从API结果中提取的,一个是由用户输入的.我试图比较它们并失败.当我var_dump时,我得到以下内容:

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

string(21) "Software & Technology" 
string(25) "Software & Technology"
Run Code Online (Sandbox Code Playgroud)

注意$ str2的长度不正确.谁知道这里发生了什么?

anu*_*ava 7

您似乎&在其中一个字符串中包含HTML&符号.在比较字符串之前,您应该使用html_entity_decode:

if (html_entity_decode($str1) == html_entity_decode($str2)) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

现场演示:http://ideone.com/pkWEJC