Как удалить скрытые символы из текстовой строки в PHP?

У меня возникают трудности с сопоставлением двух текстовых строк. Один содержит несколько скрытых символов из текстовой строки.

У меня есть текстовая строка: «PR & Связь «хранится в базе данных SQL. Когда вытащил оттуда, в $database_version, var_dump($database_version) показывает строку, чтобы иметь 19 байтов.

Я скопировал (с разрешения) с веб-сайта, какой-то текст в переменную, $web_version, Якобы строка «пиар» & Связь «, но это не соответствует версии базы данных, т.е. 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 Я не знаю, как просмотреть переменную в шестнадцатеричном коде

5

Решение

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

trim () удаляет только «\ t \ n \ r \ 0 \ x0B» (см. документы), поэтому используйте фрагмент выше, чтобы удалить непечатные символы из строки.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]