Php Замена нескольких пространств одним пространством
Я пытаюсь заменить несколько пробелов на одно пространство. Когда я использую ereg_replace
, я получаю сообщение об ошибке, поскольку он устарел.
ereg_replace("[ \t\n\r]+", " ", $string);
Есть ли для него идентичная замена. Мне нужно заменить несколько пробелов " "
и несколько пробелов nbsp
на одно пробел.
Ответы
Ответ 1
Используйте preg_replace()
и вместо [ \t\n\r]
используйте \s
:
$output = preg_replace('!\s+!', ' ', $input);
Из Справочник по базовому синтаксису регулярного выражения:
\ d,\w и \s
Сокращенные классы символов цифры, символы слов (буквы, цифры и символы подчеркивания), и пробелы (пробелы, вкладки и строка брейки). Может использоваться внутри и вне классов символов.
Ответ 2
preg_replace("/[[:blank:]]+/"," ",$input)
Ответ 3
$output = preg_replace('/\s+/', ' ',$input);
\ s является сокращением для [ \t\n\r]
. Несколько пробелов будут заменены на одно пространство.