grapheme_extract

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

grapheme_extractФункция для извлечения последовательности кластеров графем по умолчанию из текстового буфера, которая должна быть закодирована в UTF-8

Описание

Процедурный стиль

grapheme_extract(
    string$haystack,
    int$size,
    int$type = GRAPHEME_EXTR_COUNT,
    int$offset = 0,
    int&$next = null
): string|false

Функция для извлечения последовательности кластеров графем по умолчанию из текстового буфера, которая должна быть закодирована в UTF-8.

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

haystack

Строка для поиска.

size

Максимальное количество возвращаемых элементов на основе type.

type

Определяет тип единиц, на которые указывает параметр size:

  • GRAPHEME_EXTR_COUNT (по умолчанию) - size - это количество кластеров графемы для извлечения по умолчанию.
  • GRAPHEME_EXTR_MAXBYTES - size - максимальное количество возвращаемых байтов.
  • GRAPHEME_EXTR_MAXCHARS - size - это максимальное количество возвращаемых символов UTF-8.
offset

Начальная позиция haystack в байтах - если задано, оно должно быть нулём или положительным значением, которое меньше или равно длине haystack в байтах, либо отрицательным значением, отсчитываемым от конца haystack. Если offset не указывает на первый байт символа UTF-8, начальная позиция перемещается на границу следующего символа.

next

Ссылка на значение, которое будет установлено для следующей начальной позиции. Когда вызов возвращается, это может указывать на позицию первого байта за концом строки.

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

Строка, начинающаяся со смещения offset и заканчивающаяся границей кластера графемы по умолчанию, которая соответствует указанным size и type или false, если возникла ошибка.

Список изменений

ВерсияОписание
7.1.0 Добавлена поддержка отрицательных значений offset.

Примеры

Пример #1 Пример использования grapheme_extract()

<?php

$char_a_ring_nfd
= "a\xCC\x8A"; // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_extract( $char_a_ring_nfd . $char_o_diaeresis_nfd, 1, GRAPHEME_EXTR_COUNT, 2));

?>

Результат выполнения приведённого примера:

o%CC%88
To Top