У меня возникают трудности с сопоставлением двух текстовых строк. Один содержит несколько скрытых символов из текстовой строки.
У меня есть текстовая строка: «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
,
Есть идеи как:
PS Я не знаю, как просмотреть переменную в шестнадцатеричном коде
$trimmedVal = preg_replace("/\s+|[[:^print:]]/, "", $value)
trim () удаляет только «\ t \ n \ r \ 0 \ x0B» (см. документы), поэтому используйте фрагмент выше, чтобы удалить непечатные символы из строки.
Других решений пока нет …