Убираем пробелы и табуляцию из строки в PHP

Количество просмотров: 1208

Рассмотрим несколько ситуаций с удалением пробелов в php. Первая и самая часто встречающаяся это удаление пробелов в начале и конце строки. Для этого подойдет замечательная функция trim(); она доступна начиная с 4 версии php.

Пример использования:


$str = " Какая то строка с пробелами в конце и начале ";
$str = trim($str);
echo $str;

Функция вернет нам обрезанную строку - "Какая то строка с пробелами в конце и начале";

В качестве второго аргумента можно передать другое значение которое стоит вырезать, вот список значений:

  • \t - символ табуляции
  • \n - перевод строки
  • \r - возврат каретки
  • \0 - NULL байт
  • \x0B - вертикальная табуляция

Т.е. если вызвать функцию trim($str, $character_mask = " \t\n\r\0\x0B"); из начала и конца строки будут вырезаны все перечисленные символы если они там есть.

Однако, бывает, что данной функции не достаточно и нужно вырезать пробелы не только из начала или конца, а из всей строки.

Например у нас есть переменная $num="54 98 00"; на выходе нам нужна строка без пробелов вида "549800"; Для этого воспользуемся функцией preg_replace($pattern, $replace, $sub); Данная функция выполняет поиск и замену по регулярному выражению в строке sub с шаблоном pattern и заменяет их на replace. Нам нужно убрать пробелы из всей строки в переменной $num для этого подойдет следующий код:


$num="54 98 00";
$num=preg_replace('/\s/','',$num);
echo $num;

Первым аргументом мы передали \s пробельный символ, вторым на что заменять "" и в чем искать и заменять это переменная $num, на выходе получим строчку без пробелов т.е. "549800"

Если требуется убрать символ табуляции \t из строки, то мы так же можем воспользоваться данной функцией добавив его в качестве аргумента. Код ниже убирает из строки все пробелы и все символы табуляции.


<?php
$num="5		4     9 8   0  0	\t\t00";
$num=preg_replace('/\s*\t*/','',$num);
echo $num;
?>

Может быть полезно

© 2015-2018 Goodweb.me --- Карта сайта --- info@goodweb.me

Наверх