
Основные режимы работы функции определяются параметром pad_type. Доступны три варианта: STR_PAD_RIGHT (дополнение справа), STR_PAD_LEFT (слева) и STR_PAD_BOTH (с обеих сторон). Такой выбор позволяет легко управлять расположением данных, например, при генерации таблиц в консоли или создании структурированных файлов для обмена информацией.
В качестве символа дополнения можно использовать не только пробел, но и любой другой знак или даже последовательность символов. Это открывает возможности для форматирования строк при подготовке текстовых отчетов, логов или автоматической генерации кода. Особенно полезна функция при работе с данными фиксированной ширины, где каждая колонка должна строго соответствовать определенному количеству символов.
Применение str_pad() делает код более читаемым и снижает риск ошибок при ручном форматировании строк. В отличие от ручных циклов и конкатенации, функция сразу решает задачу дополнения, что упрощает разработку и повышает надежность обработки данных.
Функция str_pad в PHP и способы ее применения

Функция str_pad используется для дополнения строки до заданной длины с помощью выбранных символов. Сигнатура: str_pad(string $string, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): string.
Аргументы:
$string– исходная строка;$length– итоговая длина строки после дополнения;$pad_string– символы для заполнения (по умолчанию пробел);$pad_type– направление заполнения:STR_PAD_RIGHT(справа),STR_PAD_LEFT(слева),STR_PAD_BOTH(равномерно).
Примеры:
// дополнение справа
echo str_pad("ID7", 6, "0", STR_PAD_RIGHT); // ID7000
// дополнение слева
echo str_pad("45", 5, "0", STR_PAD_LEFT); // 00045
// равномерное дополнение
echo str_pad("PHP", 9, "-", STR_PAD_BOTH); // ---PHP---
Практическое применение:
- форматирование числовых идентификаторов с ведущими нулями;
- выравнивание текста в таблицах при генерации отчетов;
- формирование строк фиксированной длины для передачи в API или файлы с жестким форматом;
- добавление декоративных символов при построении ASCII-интерфейсов.
Если итоговая длина меньше длины исходной строки, str_pad возвращает оригинал без изменений.
Синтаксис str_pad и основные параметры функции

Функция str_pad в PHP предназначена для дополнения строки указанными символами до заданной длины. Общая форма вызова выглядит так:
str_pad(string $string, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): string
Ключевые параметры:
- $string – исходная строка, которую требуется дополнить.
- $length – итоговая длина результата. Если указано значение меньше длины исходной строки, возвращается оригинал без изменений.
- $pad_string – символы для дополнения. По умолчанию используется пробел. Можно задавать последовательности, например
"0"или"-=". - $pad_type – направление дополнения. Допустимые значения:
STR_PAD_RIGHT– добавление справа (по умолчанию).STR_PAD_LEFT– добавление слева.STR_PAD_BOTH– равномерное распределение символов с обеих сторон. Если общее число символов нечетное, лишний символ добавляется справа.
Рекомендации по применению:
- Использовать
STR_PAD_LEFTдля выравнивания числовых значений в таблицах и отчетах. - Выбирать последовательности вместо одиночных символов для выделения строк декоративными элементами.
- Контролировать значение
$length, чтобы избежать непредвиденного усечения исходного текста.
Выравнивание строк справа с помощью str_pad
Функция str_pad() позволяет дополнять строку до заданной длины выбранными символами. Для выравнивания текста по правому краю используется константа STR_PAD_LEFT, которая добавляет символы слева.
Пример: необходимо привести числовые значения к одинаковой ширине, чтобы они корректно отображались в таблице или отчёте.
$values = [7, 42, 385];
foreach ($values as $v) {
echo str_pad($v, 5, " ", STR_PAD_LEFT) . "\n";
}
Результат выполнения:
7
42
385
Вместо пробелов можно использовать нули или любые другие символы для заполнения:
echo str_pad(42, 6, "0", STR_PAD_LEFT); // 000042
Сравнение различных вариантов выравнивания:
| Исходное значение | str_pad(…, 6, » «, STR_PAD_LEFT) | str_pad(…, 6, «0», STR_PAD_LEFT) |
|---|---|---|
| 7 | 7 | 000007 |
| 42 | 42 | 000042 |
| 385 | 385 | 000385 |
Такой подход удобен для форматирования чисел, кодов, артикулов или других строк, требующих строго фиксированной длины и визуального выравнивания справа.
Выравнивание строк слева с помощью str_pad

Функция str_pad позволяет дополнять строку до заданной длины выбранными символами. Для выравнивания текста слева используется константа STR_PAD_RIGHT, при этом исходная строка остаётся в начале, а добавочные символы размещаются справа.
Пример: echo str_pad("PHP", 8, ".", STR_PAD_RIGHT); вернёт PHP...... Таким образом, длина строки становится равной 8 символам, а недостающие позиции заполняются точками.
echo str_pad("Admin", 10, " ", STR_PAD_RIGHT);
echo str_pad("User", 10, " ", STR_PAD_RIGHT);
echo str_pad("Guest", 10, " ", STR_PAD_RIGHT);
При работе с многострочными данными важно учитывать, что выбранный символ дополнения должен быть одинаковым для всех строк, иначе выравнивание нарушится. Для визуальной сетки чаще всего используют пробел или точку.
Центрирование текста с использованием str_pad

Функция str_pad позволяет выравнивать строку по центру, заполняя свободные позиции символами слева и справа. Для этого используется константа STR_PAD_BOTH.
Пример:
$text = "PHP";
echo str_pad($text, 10, " ", STR_PAD_BOTH);
Результатом будет строка длиной 10 символов, где слово «PHP» окажется в середине, а по бокам будут добавлены пробелы. Такой подход удобен для форматирования таблиц в консоли или генерации отчетов в текстовом формате.
При необходимости можно задать любой символ-заполнитель. Например:
$title = "Menu";
echo str_pad($title, 20, "-", STR_PAD_BOTH);
Важно учитывать, что если общая длина строки не делится поровну, функция добавит на один символ больше справа. Для точного контроля длины рекомендуется заранее проверять результат с помощью strlen.
Заполнение строк пользовательскими символами

Функция str_pad() позволяет задавать любой набор символов для дополнения строки. Аргумент $pad_string определяет, чем будет заполнено свободное пространство. Это может быть один символ, например "0", или последовательность символов, например "-+". Важно учитывать, что PHP повторяет строку заполнителя до тех пор, пока итоговая длина не будет достигнута.
Например, вызов str_pad("ID", 8, "#") вернёт "ID######", а str_pad("ID", 8, "ab") даст "IDababab". Если длина заполнителя не делится нацело на количество недостающих символов, то строка обрезается: str_pad("X", 6, "123") → "X12312".
Практические примеры форматирования данных с str_pad

-
Форматирование числовых идентификаторов
Для отображения кодов товаров одинаковой длины:
$id = 45; echo str_pad($id, 6, "0", STR_PAD_LEFT); // 000045 -
Выравнивание текста в отчетах
$products = ["Яблоки", "Груши", "Бананы"]; foreach ($products as $p) { echo str_pad($p, 10, " ", STR_PAD_RIGHT) . "| Цена\n"; } -
Создание псевдотаблицы
При формировании строк фиксированной длины:
$name = "Иванов"; $balance = "1200"; echo str_pad($name, 15) . str_pad($balance, 8, " ", STR_PAD_LEFT); -
Заполнение строк спецсимволами
Для генерации заголовков или разделителей:
echo str_pad(" ОТЧЕТ ", 30, "=", STR_PAD_BOTH); // ======= ОТЧЕТ =======
Рекомендуется использовать STR_PAD_LEFT для числовых данных, STR_PAD_RIGHT – для текстовых полей, а STR_PAD_BOTH – для декоративного оформления.
Вопрос-ответ:
Для чего вообще используется функция str_pad в PHP?
Функция str_pad служит для дополнения строки определёнными символами до нужной длины. Например, если у нас есть число «5», а нам нужно вывести его в формате «005», то str_pad решает задачу автоматически, добавляя слева недостающие нули. Это удобно при работе с табличными данными, кодами, идентификаторами и при форматировании вывода.
Можно ли использовать несколько символов для заполнения, а не один?
Да, функция поддерживает строку любой длины в качестве символа-заполнителя. Например, если передать `’ab’` в качестве аргумента, то строка будет дополняться повторяющимися «ab» до достижения нужной длины. При этом PHP циклически повторяет указанный набор символов, пока не получится строка требуемой длины.
Чем str_pad отличается от обычной конкатенации строк?
Конкатенация требует вручную вычислять, сколько символов не хватает, и добавлять их циклом или повторением строки. str_pad делает всё за программиста: сама считает количество недостающих символов и дополняет строку в нужном направлении. В результате код становится компактнее, а вероятность ошибки при форматировании данных снижается.
