ltrim()
Статья о функции PHP ltrim(), которая удаляет пробелы или другие указанные символы с начала строки.
Функция PHP ltrim() удаляет пробелы (или другие указанные символы) с левой стороны — начала — строки. Буква «l» означает left (левый). Она является парной к rtrim(), которая обрезает с правой стороны, и trim(), которая обрезает с обоих концов.
ltrim() наиболее полезна, когда нужно нормализовать входные данные, которые вы не полностью контролируете: ведущие пробелы из полей форм, ведущие нули в идентификаторах или ведущие разделители, оставшиеся после разбиения или конкатенации строк.
Синтаксис
ltrim(string $string, string $characters = " \n\r\t\v\0"): string| Параметр | Описание |
|---|---|
$string | Входная строка для обрезки. |
$characters | Необязательный. Набор символов для удаления. Каждый символ обрабатывается независимо — порядок не важен. Если не указан, используется набор пробельных символов по умолчанию. |
Функция возвращает новую строку; исходная никогда не изменяется (в PHP строки передаются по значению).
Набор символов по умолчанию
При вызове ltrim() с одним аргументом с левой стороны удаляются следующие символы:
" "(обычный пробел)"\t"(табуляция)"\n"(перевод строки)"\r"(возврат каретки)"\0"(нулевой байт)"\v"(вертикальная табуляция)
Удаление ведущих пробелов
Наиболее распространённое использование — очистка ведущих пробелов:
Вывод:
[Hello World! ]Обратите внимание, что завершающие пробелы остаются — ltrim() затрагивает только левую сторону. Скобки [ и ] добавлены лишь для наглядного отображения границ в выводе.
Удаление конкретных символов
Передайте второй аргумент, чтобы удалить произвольный набор символов вместо пробелов. Классический пример — удаление ведущих нулей:
<?php
echo ltrim("0042", "0"); // 42
echo "\n";
echo ltrim("xxxHello", "x"); // Hello
?>Вывод:
42
HelloАргумент $characters — это набор, а не подстрока. Каждый перечисленный символ удаляется независимо, поэтому ltrim($line, ".,") удаляет любую комбинацию ведущих точек и запятых:
<?php
$line = "...,.,Hello, World";
echo ltrim($line, ".,"); // Hello, World
?>Вывод:
Hello, WorldФункция останавливается на первом символе, которого нет в наборе (H в данном случае), оставляя внутреннюю , в Hello, World нетронутой.
Типичные ошибки
- Это не удаление подстроки.
ltrim("hello", "he")удаляет оба символаhиe, возвращая"llo"— она не ищет буквальный префикс"he". Чтобы удалить известный префикс, используйтеstr_replace()для первого вхождения илиsubstr(). - Работает с байтами, а не с Unicode.
ltrim()оперирует байтами, поэтому она может повредить многобайтовые UTF-8 символы, если указать их в$characters. Для ASCII это совершенно безопасно; для обрезки многобайтовых символов используйте шаблонpreg_replace()с модификаторомu. - Возвращает копию. Присваивайте результат обратно, если хотите его сохранить:
$s = ltrim($s);.
Когда использовать какую функцию обрезки
| Задача | Функция |
|---|---|
| Обрезать только с начала | ltrim() |
| Обрезать только с конца | rtrim() |
| Обрезать с обоих концов | trim() |
Для более широкого обзора работы со строками в PHP смотрите PHP Strings.