PHP

Удаление лишних пробелов и переводов строк

Сегодня я расскажу о том, как избавиться от лишних пробелов и переводов строк с помощью регулярных выражений PHP.

Вообще, регулярные выражения очень хорошая вещь! С их помощью можно создавать достаточно сложные конструкции. Новичкам рекомендую почитать об этом на php.su.

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

В природе существуют такие пользователи, которые могут случайно написать что-нибудь ненужное или специально напортачить и сделать, например, 100500 переводов строк, зажав кнопку Enter. Ну, встречались с такими, да?! :-)

Итак, если таковые завелись у вас на сайте, то пишем следующий код для удаления лишних пробелов:
// Строка с лишними пробелами
$text = "  maxso f . r u   ";

// Удаляем лишние пробелы
$text = preg_replace("/[ ]+/i", "", $text);

/* В итоге получаем: maxsof.ru */

Такое преобразование подойдет для строк в которых вообще не должны содержаться пробелы, таких как адрес сайта, логин, пароль, эл. ящик и тп. В остальных случаях можно воспользоваться функциями PHP:

trim() — удаляет пробелы из начала и конца строки.
ltrim() — удаляет пробелы из начала строки.
rtrim() — удаляет пробелы из конца строки.

Теперь боремся с переводом строк:
// Текст с кучей лишних переводов строки
$text = "У лукоморья дуб зелёный;
Златая цепь на дубе том:


И днём и ночью кот учёный

Всё ходит по цепи кругом;
Идёт направо - песнь заводит,
Налево - сказку говорит.

Там чудеса: там леший бродит,
Русалка на ветвях сидит;";

// Удаляем двойные (тройные и тд.) переводы строк
$text = preg_replace("/(\r\n)+/i", "\r\n", $text);

/* В итоге получаем:
У лукоморья дуб зелёный;
Златая цепь на дубе том:
И днём и ночью кот учёный
Всё ходит по цепи кругом;
Идёт направо - песнь заводит,
Налево - сказку говорит.
Там чудеса: там леший бродит,
Русалка на ветвях сидит; */

Чтобы преобразовать все тройные (или больше) переводы строк на двойные, а двойные и одинарные оставить без изменения, нужно сделать так:
$text = preg_replace("/(\r\n)+(\r\n)/i", "\r\n\r\n", $text);

Ну, вот, как-то так. Удачи и ведите себя хорошо ;-)
Добавлено: 24 Августа 2013 01:38:42 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...