update page now
PHP 8.5.4 Released!

grapheme_str_split

(PHP 8 >= 8.4.0)

grapheme_str_splitРазбивает строку на массив графемных кластеров

Описание

grapheme_str_split(string $string, int $length = 1): array|false

Функция возвращает массив строк и работает аналогично функции str_split(), но разбивает строку по графемным кластерам — последовательностям одно- или многобайтовых кодовых точек, которыми кодируется единое для восприятия графическое представление символа. Функция разбивает строку на части заданной длины, если передали аргумент length; длина отдельной части измеряется не в байтах, а в графемных кластерах.

Список параметров

string

Строка (string), которую требуется разбить на части из одного или большего количества графемных кластеров. Параметр string принимает строку, которая соответствует стандарту UTF-8.

length

Параметр length определяет максимум графемных кластеров в одном элементе массива.

Возвращаемые значения

Функция grapheme_str_split() возвращает массив строк или false, если возникла ошибка.

Ошибки

Функция выбросит ошибку ValueError, если значение параметра length окажется меньше 1.

Смотрите также

Добавить

Примечания пользователей 1 note

up
1
cygx1 at blackhole dot io
11 months ago
Here is a userland implementation that can be included in code that needs to support PHP 8.3 and below:

<?php

if (!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;
        }
    }
}

?>
To Top