Замена лишних пробелов

Мне нужно удалить лишние пробелы из моих имен пользователей в моем приложении (более одного раза между буквами) и заменить их одним пробелом. Я не возражаю против пользователей, имеющих одиночные пробелы, но мне нужно удалить несколько пробелов рядом друг с другом. В настоящее время я это делаю так:

$replace_array=array(' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '); $fill_array=array('','','','','','','','','','','','','',''); $user_name=str_replace($replace_array,$fill_array,trim($_POST['name'])); $user_name=preg_replace('/[^a-zA-Z0-9 ]/','',$user_name); 

Кажется совершенно ненужным удалить лишние пробелы. Может быть, функция preg_replace уже обрабатывает избыточные пробелы? Если нет, что мне делать, чтобы упростить эту часть моего кода.

Благодаря!

 preg_replace('/\s+/', ' ', $string); 

найти 1 или больше места и заменить на 1 пробел:

 preg_replace('/\s+/',' ',$user_name) 

Также вы можете использовать 1 инструкцию preg-replace

 $user_name=preg_replace('/([^a-zA-Z0-9 ]|\s+)/','',$user_name); 

попробуйте preg_replace следующим образом:

 preg_replace('/\s{2,}/', ' ', $str); 

я понимаю, что просто использование str_replace(' ', '') позволит исправить вашу проблему. Он заменяет несколько случаев пространства. Также вы пытались использовать ltrim?