W3docs

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" (вертикальная табуляция)

Удаление ведущих пробелов

Наиболее распространённое использование — очистка ведущих пробелов:

php— editable, runs on the server

Вывод:

[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.

Практика

Практика
Какова основная функция ltrim() в PHP?
Какова основная функция ltrim() в PHP?
Was this page helpful?