3v4l.org

run code in 300+ PHP versions simultaneously
<?php function mb_str_pad($str, $pad_len, $pad_str = ' ', $dir = STR_PAD_RIGHT, $encoding = NULL) { $encoding = $encoding === NULL ? mb_internal_encoding() : $encoding; $padBefore = $dir === STR_PAD_BOTH || $dir === STR_PAD_LEFT; $padAfter = $dir === STR_PAD_BOTH || $dir === STR_PAD_RIGHT; $pad_len -= mb_strlen($str, $encoding); $targetLen = $padBefore && $padAfter ? $pad_len / 2 : $pad_len; $strToRepeatLen = mb_strlen($pad_str, $encoding); $repeatTimes = ceil($targetLen / $strToRepeatLen); $repeatedString = str_repeat($pad_str, max(0, $repeatTimes)); // safe if used with valid utf-8 strings $before = $padBefore ? mb_substr($repeatedString, 0, floor($targetLen), $encoding) : ''; $after = $padAfter ? mb_substr($repeatedString, 0, ceil($targetLen), $encoding) : ''; return $before . $str . $after; } // same random testing... foreach([STR_PAD_BOTH, STR_PAD_LEFT, STR_PAD_RIGHT] as $padType) { echo str_pad("FOO", 11, "aeo", $padType) . "\n"; echo mb_str_pad("FOO", 11, "àèò", $padType, "UTF-8") . "\n"; echo str_pad("FOO", 10, "aeo", $padType) . "\n"; echo mb_str_pad("FOO", 10, "àèò", $padType, "UTF-8") . "\n"; echo str_pad("BAAZ", 11, "aeo", $padType) . "\n"; echo mb_str_pad("BAAZ", 11, "àèò", $padType, "UTF-8") . "\n"; echo str_pad("BAAZ", 10, "aeo", $padType) . "\n"; echo mb_str_pad("BAAZ", 10, "àèò", $padType, "UTF-8") . "\n"; echo str_pad("FOOBAR", 6, "aeo", $padType) . "\n"; echo mb_str_pad("FOOBAR", 6, "àèò", $padType, "UTF-8") . "\n"; echo str_pad("FOOBAR", 1, "aeo", $padType) . "\n"; echo mb_str_pad("FOOBAR", 1, "àèò", $padType, "UTF-8") . "\n"; echo str_pad("FOOBAR", 0, "aeo", $padType) . "\n"; echo mb_str_pad("FOOBAR", 0, "àèò", $padType, "UTF-8") . "\n"; echo str_pad("FOOBAR", -10, "aeo", $padType) . "\n"; echo mb_str_pad("FOOBAR", -10, "àèò", $padType, "UTF-8") . "\n"; echo "--\n"; } ?>

preferences:
45.72 ms | 402 KiB | 5 Q