Замените несколько пространств и новых строк только одним пространством в PHP
У меня есть строка с несколькими символами новой строки.
Строка:
This is a dummy text. I need
to format
this.
Требуемый выход:
This is a dummy text. I need to format this.
Я использую это:
$replacer = array("\r\n", "\n", "\r", "\t", " ");
$string = str_replace($replacer, "", $string);
Но он не работает как желательно/требуется. Некоторые из слов не имеют между ними пробелов.
На самом деле мне нужно преобразовать строку со всеми словами, разделенными пробелами.
Ответы
Ответ 1
Я бы посоветовал вам использовать preg_replace
:
# string(45) "This is a dummy text . I need to format this."
$str = preg_replace( "/\s+/", " ", $str );
Демо: http://codepad.org/no6zs3oo
Возможно, вы отметили в части " . "
первого примера. Пробелы, которые сразу же следует за пунктуацией, должны быть полностью удалены. Быстрая модификация позволяет это:
$patterns = array("/\s+/", "/\s([?.!])/");
$replacer = array(" ","$1");
# string(44) "This is a dummy text. I need to format this."
$str = preg_replace( $patterns, $replacer, $str );
Демо: http://codepad.org/ZTX0CAGD