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

her*_*res 5 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?

PS我不知道如何在十六进制代码中查看变量

小智 3

$v = preg_replace('/\s+|[[:^print:]]/', '', $string);
Run Code Online (Sandbox Code Playgroud)

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