我得到了下面的代码,在去掉所有空白后应该比较两个字符串,下面是函数的简化版本:
function not_same($type, $org_str1, $str2) {
$str1 = preg_replace('/\s+/', '', $org_str1);
$str2 = preg_replace('/\s+/', '', $str2);
$tries = [];
$tries[] = ["str1" => $str1, "str2" => $str2, "encoded1" => urlencode($str1), "encoded2" => urlencode($str2)];
if($str1 == $str2) {
return true;
} else {
return false;
}
}
我用这个来检查计算机上的处理器是否与数据库中匹配的型号相同,所以
$org_str1
是我的客户所说的运行它的计算机
$str2
是模型应该具有的数据库中的cpu。
现在我得到计算机回来说,CPU是错误的,因为不匹配,因为有一些空白是没有删除。
Celeron® N3050
Celeron® N3050
.
我每次都在记录
事实上
在我的服务器上比较时,在我的客户端上,它表示它正在比较客户端:
Celeron®N3050
我试着把这个空白复制粘贴到
str_replace()
但并没有解决问题。在那之后,我想到了用
urlencode()
,这让我看到了这个神秘的白色字符到底是什么,但我仍然不知道如何解决这个问题。
是客户:
Celeron%C2%AE%C2%A0N3050
Celeron%C2%AEN3050
如您所见,在我的客户机字符串中仍然有一个空格字符,编码为
%C2%A0
. 为什么pregèu replace没有删除这个空白,我如何通过编程删除它?