2 namespace callnotifier;
5 * Some helper functions
10 * Multibyte-version of str_pad
12 * @link http://stackoverflow.com/a/14773638/282601
14 public static function mb_str_pad(
15 $input, $pad_length, $pad_string = ' ',
16 $pad_type = STR_PAD_RIGHT, $encoding = 'UTF-8'
18 if (!function_exists('mb_substr')) {
19 return str_pad($input, $pad_length, $pad_string, $pad_type);
22 $input_length = mb_strlen($input, $encoding);
23 $pad_string_length = mb_strlen($pad_string, $encoding);
25 if ($pad_length <= 0 || ($pad_length - $input_length) <= 0) {
29 $num_pad_chars = $pad_length - $input_length;
34 $right_pad = $num_pad_chars;
38 $left_pad = $num_pad_chars;
43 $left_pad = floor($num_pad_chars / 2);
44 $right_pad = $num_pad_chars - $left_pad;
49 for ($i = 0; $i < $left_pad; ++$i) {
50 $result .= mb_substr($pad_string, $i % $pad_string_length, 1, $encoding);
53 for ($i = 0; $i < $right_pad; ++$i) {
54 $result .= mb_substr($pad_string, $i % $pad_string_length, 1, $encoding);