3v4l.org

run code in 300+ PHP versions simultaneously
<?php echo "strlen ГРАЙ: " . strlen('ГРАЙ') . PHP_EOL; $mask = function ($name) { $length = strlen($name); return $name[0] . str_repeat('*', $length - 2) . $name[$length - 1]; }; echo "single-byte mask: " . $mask('ГРАЙ') . PHP_EOL; $grapheme_mask = function ($name) { $length = grapheme_strlen($name); return grapheme_substr($name, 0, 1) . str_repeat('*', $length - 2) . grapheme_substr($name, -1, 1); }; echo "grapheme mask: " . $grapheme_mask('ГРАЙ') . PHP_EOL; $mb_mask = function ($name) { $length = mb_strlen($name); return mb_substr($name, 0, 1) . str_repeat('*', $length - 2) . mb_substr($name, -1, 1); }; echo "mb mask: " . $mb_mask('ГРАЙ') . PHP_EOL;

preferences:
25.26 ms | 402 KiB | 5 Q