PHP 8.4.6 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
0
cygx1 at blackhole dot io
1 day 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