Дополнение строки до заданной длины с левого края в PHP
Стандартная функция str_pad() с константой STR_PAD_LEFT
В PHP нет отдельной функции для данной задачи, но есть общая функция дополнения строки — str_pad(). В 4-й аргумент этой функции нужно передать константу STR_PAD_LEFT. Однако данная функция НЕБЕЗОПАСНА для многобайтных строк, нужно использовать альтернативную реализацию.
Альтернативная функция str_pad() с константой STR_PAD_LEFT
Исходный код
class StringExtension {
/**
* @param string $string
* @param int $padLength
* @param string $padString
* @param string $encoding
* @return string
*/
public static function padLeft($string, $padLength, $padString = ' ', $encoding = null) {
$string = (string) $string;
$padLength = (int) $padLength;
$padString = (string) $padString;
$encoding = ($encoding === null) ? mb_internal_encoding() : (string) $encoding;
if ($padLength && ($padStringLength = mb_strlen($padString, $encoding))) {
$padLength -= mb_strlen($string, $encoding);
if ($padLength > 0) {
$string = mb_substr(str_repeat($padString, ceil($padLength / $padStringLength)), 0, $padLength, $encoding) . $string;
}
}
return $string;
}
}
Аргументы
- $string — дополняемая строка;
- $padLength — нужная длина строки;
- $padString — строка дополнения;
- $encoding — кодировка.
Возвращаемое значение
Возвращает строку string, дополненную до длины padLength с левого края.
Особенности
БЕЗОПАСНА для многобайтных строк.