У меня есть следующая строка, которую я хочу «очистить» от нескольких пробелов:
$string = "This is a test string"; //Using utf8_decode
Не имеет большого значения, верно? Однако строка не очищается после использования:
$string = preg_replace('/\s+/', ' ', $string);
Потому что строка на самом деле выглядит так:
$test = "This is a  test string";
Итак, как я могу исправить эту проблему?
Благодарю.
Пожалуйста, я не хочу заменять символ str_replace('Â', '')
или что-то
Вы можете использовать /u
Модификатор UNICODE:
$string = preg_replace('/\s+/u', ' ', $string);
/u
модификатор позволяет механизму PCRE обрабатывать строки как строки UTF8 (путем включенияPCRE_UTF8
глагол) и сделать классы сокращенных символов в шаблоне Unicode осведомленными (путем включенияPCRE_UCP
глагол)
Главное, что \s
теперь будет соответствовать всем пробелам Юникода, а входная строка обрабатывается как строка Юникода.
Других решений пока нет …