我很难匹配两个文本字符串。一个包含文本字符串中的一些隐藏字符。
我有一个文本字符串:“PR& Communications”存储在SQL数据库中。从那里拉到$database_version
时,var_dump($database_version)
显示字符串有19个字节。
我从网站上抓取(经过许可),将一些文字写入变量$web_version
。表面上字符串是“PR& Communications”但它与数据库版本不匹配,即if($database_version == $web_version)
不正确。
var_dump()
显示$web_version
有23个字节。 trim()
无效,strip_tags()
也不会preg_replace( '/[^\PC\s]/u', $web_version )
移除某些内容,因为之后string_var($web_version)
会将字符串显示为仅包含14个字节。它已经清楚地删除了一些东西,可能太多了,因为字符串仍然与$database_version
不匹配。
任何想法如何:
PS我不知道如何以十六进制代码查看变量
答案 0 :(得分:2)
$trimmedVal = preg_replace("/\s+|[[:^print:]]/, "", $value)
trim()仅删除“\ t \ n \ r \ n \ 0 \ x0B”(请参阅docs),因此请使用上面的代码段从字符串中删除未打印的字符。