Разработчику. Сборник рецептов PHP
Задавайте вопросы

Удаление пробельных символов из строки

Вернуться назад

Задача

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

Решение

Следует обратиться к функциям ltrim(), rtrim() или trim(). Функция ltrim() удаляет пробельные символы в начале строки, rtrim() – в конце строки, а функция trim() – и в начале, и в конце строки:

$zipcode = trim($_REQUEST['zipcode']);
$no_linefeed = rtrim($_REQUEST['text']);
$name = ltrim($_REQUEST['name']);

Обсуждение

Эти функции считают пробельными следующие символы: символ новой строки, возврат каретки, пробел, горизонтальную и вертикальную табуляции и символ NULL. Удаление пробельных символов из строки позволяет сэкономить память и может сделать более корректным отображение форматированных данных или текста, например, содержащегося в тегах <pre>. При проверке пользовательского ввода сначала нужно обрезать пробелы, так чтобы не заставлять того, кто ввел «98052» вместо своего почтового индекса, исправлять ошибку, которая, собственно, таковой не является. Отбрасывание начальных и конечных пробелов в тексте перед его проверкой означает, например, что «salami\n» будет равно «salami». Неплохо также нормализовать данные путем обрезания пробелов перед их занесением в базу данных. Кроме того, функция trim() способна удалять из строки символы, определенные пользователем. Удаляемые символы передаются в качестве второго аргумента. Можно указать интервал символов с помощью двоеточия между первым и последним символом интервала.

// Удаление цифр и пробела в начале строки
print ltrim('10 PRINT A$',' 0..9');
// Удаление точки с запятой в конце строки
print rtrim('SELECT * FROM turtles;',';');
PRINT A$
SELECT * FROM turtles

PHP рассматривает chop() как синоним rtrim(). Однако лучше использовать rtrim(), поскольку поведение функции chop() в PHP отличается от поведения chop() в Perl (вместо которой в любом случае лучше применять функцию chomp()), а ее применение может затруднить другим чтение вашего кода.

Вернуться назад

Рейтинг@Mail.ru

Яндекс.Метрика

Индекс цитирования


Рейтинг Сайтов ДОСКИ.РУ