--- /dev/null
+<?php
+namespace callnotifier;
+
+/**
+ * Some helper functions
+ */
+class Functions
+{
+ /**
+ * Multibyte-version of str_pad
+ *
+ * @link http://stackoverflow.com/a/14773638/282601
+ */
+ public static function mb_str_pad(
+ $input, $pad_length, $pad_string = ' ',
+ $pad_type = STR_PAD_RIGHT, $encoding = 'UTF-8'
+ ) {
+ if (!function_exists('mb_substr')) {
+ return str_pad($input, $pad_length, $pad_string, $pad_type);
+ }
+
+ $input_length = mb_strlen($input, $encoding);
+ $pad_string_length = mb_strlen($pad_string, $encoding);
+
+ if ($pad_length <= 0 || ($pad_length - $input_length) <= 0) {
+ return $input;
+ }
+
+ $num_pad_chars = $pad_length - $input_length;
+
+ switch ($pad_type) {
+ case STR_PAD_RIGHT:
+ $left_pad = 0;
+ $right_pad = $num_pad_chars;
+ break;
+
+ case STR_PAD_LEFT:
+ $left_pad = $num_pad_chars;
+ $right_pad = 0;
+ break;
+
+ case STR_PAD_BOTH:
+ $left_pad = floor($num_pad_chars / 2);
+ $right_pad = $num_pad_chars - $left_pad;
+ break;
+ }
+
+ $result = '';
+ for ($i = 0; $i < $left_pad; ++$i) {
+ $result .= mb_substr($pad_string, $i % $pad_string_length, 1, $encoding);
+ }
+ $result .= $input;
+ for ($i = 0; $i < $right_pad; ++$i) {
+ $result .= mb_substr($pad_string, $i % $pad_string_length, 1, $encoding);
+ }
+
+ return $result;
+ }
+}
+?>
if ($this->callTypes == 'io') {
$str .= $prefix;
- $str .= str_pad($numstr, 20);
+ $str .= Functions::mb_str_pad($numstr, 20);
} else {
- $str .= ' ' . str_pad($numstr, 25);
+ $str .= ' ' . Functions::mb_str_pad($numstr, 25);
}
$str .= ' ' . date('H:i:s', $call->end - $call->start - 3600);