Замените несколько пространств и новых строк только одним пространством в 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); 

Но он не работает как желательно / требуется. Некоторые из слов не имеют пробелов между ними.

На самом деле мне нужно преобразовать строку со всеми словами, разделенными пробелами.

Я бы посоветовал вам использовать 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