Here is a userland implementation that can be included in code that needs to support PHP 8.3 and below:<?phpif (!function_exists('grapheme_str_split')) { function grapheme_str_split(string $string, int $length = 1): array|false { if ($length < 1) { throw new \ValueError('Argument #2 ($length) must be greater than 0 and less than or equal to 1073741823'); } try { return preg_split('/(\X{' . $length . '})/u', $string, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); } catch (\Throwable $e) { return false; } }}?>