// ── mb_str_pad fallback (PHP < 8.3) ────────────────────────────── if (!function_exists('mb_str_pad')) { function mb_str_pad(string $str, int $length, string $pad = ' ', int $type = STR_PAD_RIGHT, string $enc = 'UTF-8'): string { $diff = $length - mb_strlen($str, $enc); if ($diff <= 0) return $str; $pad_unit = mb_strlen($pad, $enc); $pad_str = str_repeat($pad, (int)ceil($diff / $pad_unit)); $pad_str = mb_substr($pad_str, 0, $diff, $enc); if ($type === STR_PAD_LEFT) return $pad_str . $str; if ($type === STR_PAD_BOTH) { $left = mb_substr($pad_str, 0, (int)floor($diff / 2), $enc); $right = mb_substr($pad_str, 0, (int)ceil($diff / 2), $enc); return $left . $str . $right; } return $str . $pad_str; } }OK