UTF-8 str_pad em PHP

No dia anterior, tive um problema com o str pad padrão . Eu estava usando strings codificadas em UTF-8. Estranhamente, em alguns casos, o str pad não preencheu uma string até o número fornecido. Esta função corrige esse problema.

function mb_str_pad(
$input
,
$pad_length
,
$pad_string
=" ",
$pad_style
=STR_PAD_RIGHT,
$encoding
="UTF-8")
{
return str_pad(
$input
,
strlen
($input)-mb_strlen($input,$encoding)+$pad_length,
$pad_string
,
$pad_style
);
}

Originalmente postado aqui: PHP: str_pad – Manual