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().