mb_str_pad

funkcja

Dopełnia ciąg do podanej długości znakami (nie bajtami). Wielobajtowy odpowiednik str_pad(). Dostępna od PHP 8.3.

mb_str_pad(string $string, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string

mb_str_pad działa jak str_pad(), ale liczy długość ciągu w znakach, a nie bajtach. To istotna różnica przy polskich literach: str_pad('Łódź', 8) doda tylko 1 spację (bo strlen('Łódź') = 7 bajtów), podczas gdy mb_str_pad('Łódź', 8) doda 4 spacje (bo mb_strlen('Łódź') = 4 znaki). Dostępna od PHP 8.3.

<?php
declare(strict_types=1);

// Dopełnienie z prawej (domyślne):
echo mb_str_pad('Łódź', 8);             // wynik: 'Łódź    ' (4 spacje)

// Dopełnienie z lewej:
echo mb_str_pad('Łódź', 8, ' ', STR_PAD_LEFT);  // wynik: '    Łódź'

// Dopełnienie z obu stron:
echo mb_str_pad('Łódź', 8, '-', STR_PAD_BOTH);  // wynik: '--Łódź--'

// str_pad() liczy bajty — błędny wynik dla UTF-8:
echo str_pad('Łódź', 8); // wynik: 'Łódź ' (tylko 1 spacja, bo strlen=7)

Parametr $pad_type przyjmuje stałe STR_PAD_RIGHT (domyślnie), STR_PAD_LEFT lub STR_PAD_BOTH — te same co w str_pad().

📘 Naucz się w lekcji →