Мне нужно удалить лишние пробелы из моих имен пользователей в моем приложении (более одного раза между буквами) и заменить их одним пробелом. Я не возражаю против пользователей, имеющих одиночные пробелы, но мне нужно удалить несколько пробелов рядом друг с другом. В настоящее время я это делаю так:
$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?