Как убрать все пробелы из строки в php? [Дубликат]

416

Возможный дубликат:
Чтобы удалить пробелы внутри переменной в PHP

Как я могу strip/ удалить все пробелы строки в PHP?

У меня есть строка , например $string = "this is my string"; выход должен быть "thisismystring"

Как я могу это сделать?

  • 0
    Смотрите также: stackoverflow.com/questions/1279774/…
  • 0
    Технически, этот вопрос немного отличается от дублирующего вопроса. Иногда вы можете захотеть убрать пробелы без вкладок.
Показать ещё 1 комментарий
Теги:
string
spaces

4 ответа

920
Лучший ответ

Вы просто имеете в виду пробелы или все пробелы?

Для пробелов используйте str_replace:

$string = str_replace(' ', '', $string);

Для всех пробелов используйте preg_replace:

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

(Из здесь).

  • 34
    Во-первых, вам не нужно + . $string = preg_replace('/\s/', '', $string); должно работать нормально. Единственное, что не работает для меня, это неразрывные пробелы. Я должен был использовать это: $string = preg_replace('~\x{00a0}~','',$string); удалить их. Благодаря этому ответу stackoverflow : stackoverflow.com/a/12838189/631764
  • 37
    Интересный вопрос новичка: в чем разница между space и whitespace ? Разве это не то же самое?
Показать ещё 6 комментариев
34

Если вы хотите удалить все пробелы:

$str = preg_replace('/\s+/', '', $str);

См. пятый пример документацию preg_replace. (Примечание, я первоначально скопировал это здесь.)

Изменить: комментаторы указали, и правильно, что str_replace лучше, чем preg_replace, если вы действительно просто хотите удалить символ пробела. Причиной использования preg_replace было бы удаление всех пробелов (включая вкладки и т.д.).

  • 8
    »Если вам не нужны необычные правила замены (например, регулярные выражения), вы всегда должны использовать эту функцию [ str_replace ] вместо ereg_replace() или preg_replace()
  • 1
    Я бы не предложил использовать регулярные выражения для простого удаления пробелов. str_replace для просто пробелов, preg_replace для всех пробелов.
Показать ещё 4 комментария
18

Если вы знаете, что пробел - это только пробелы, вы можете использовать:

$string = str_replace(' ','',$string); 

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

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

str_replace сделает трюк таким образом

$new_str = str_replace(' ', '', $old_str);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню