如何从PHP中删除文本字符串中的隐藏字符?

时间:2016-01-27 15:58:14

标签: php mysql string-matching

我很难匹配两个文本字符串。一个包含文本字符串中的一些隐藏字符。

我有一个文本字符串:“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不匹配。

任何想法如何:

  1. 找出已删除的内容
  2. 剥离到足以匹配$ database_version?
  3. PS我不知道如何以十六进制代码查看变量

1 个答案:

答案 0 :(得分:2)

$trimmedVal = preg_replace("/\s+|[[:^print:]]/, "", $value)

trim()仅删除“\ t \ n \ r \ n \ 0 \ x0B”(请参阅​​docs),因此请使用上面的代码段从字符串中删除未打印的字符。