我试图比较两个不同的特殊字符,但是当我比较它们时它们是相同的。
users.com/profile.php?username=Stackoverflow
的Apache / 2.4.10
PHP / 5.6.3
PhpStorm 9.0.2
如何进行有效比较?
谢谢。
答案 0 :(得分:2)
如何进行有效比较?
更新了解决方案
也许我们以错误的方式看待这个问题。问题可能与PHP无关,而是与您的代码编辑器有关。也许编辑器在输入时将两个字符都注册为相同,因此PHP没有看到任何差异。您可以这样做:
Wordpad
$char=file_get_contents('path/to/char.txt')
原始解决方案
您可以尝试将字符转换为ASCII值,然后比较值而不是字符
$ordUTF8 = function($char){
list(, $ord) = unpack('N', mb_convert_encoding($char, 'UCS-4BE', 'UTF-8'));
return $ord;
};
$char1= "";
$char2= "";
// 61656 and 61558 in my testing
$isEqual = $ordUTF8($char1)===$ordUTF8($char2);
Live demo。此解决方案的灵感来自this accepted answer