Grapheme Functions
grapheme_stripos
Grapheme Functions
PHP Manual

# grapheme_extract

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

grapheme_extract — Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.

### Description

Procedural style

string grapheme_extract ( string `$haystack` , int `$size` [, int `$extract_type` [, int `$start` = 0 [, int `&$next` ]]] )

Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.

### Parameters

`haystack`

  String to search.

`size`

  Maximum number items - based on the $extract_type - to return.

`extract_type`

  Defines the type of units referred to by the $size parameter:

  - GRAPHEME_EXTR_COUNT (default) - $size is the number of default grapheme clusters to extract.
  - GRAPHEME_EXTR_MAXBYTES - $size is the maximum number of bytes returned.
  - GRAPHEME_EXTR_MAXCHARS - $size is the maximum number of UTF-8 characters returned.
`start`

  Starting position in $haystack in bytes - if given, it must be zero or a positive value that is less than or equal to the length of $haystack in bytes. If $start does not point to the first byte of a UTF-8 character, the start position is moved to the next character boundary.

`next`

  Reference to a value that will be set to the next starting position. When the call returns, this may point to the first byte position past the end of the string.

### Return Values

A string starting at offset $start and ending on a default grapheme cluster boundary that conforms to the $size and $extract_type specified.

### Examples

Example #1 grapheme_extract() example

`<?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));
?>`

The above example will output:

    o%CC%88

### See Also

- grapheme_substr() - Return part of a string
- » Unicode Text Segmentation: Grapheme Cluster Boundaries

Grapheme Functions
grapheme_stripos
Grapheme Functions
PHP Manual