PHP.mk документација

grapheme_extract

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.grapheme-extract.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.grapheme-extract.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
grapheme_extract

Референца за `function.grapheme-extract.php` со подобрена типографија и навигација.

function.grapheme-extract.php

grapheme_extract

Класата Collator

grapheme_extractФункција за извлекување низа од стандардни графеми од бафер со текст, кој мора да биде кодиран во UTF-8

= NULL

Процедурален стил

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 and type специфицирано, или false при неуспех.

Дневник на промени

Верзија = NULL
7.1.0 се генерира грешка на ниво на Windows, а од PHP 7.4 и на други оперативни системи. offsetПоддршката за негативни

Примери

Пример #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));

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

o%CC%88

Види Исто така

Белешки од корисници 3 белешки

AJH
пред 14 години
Here's how to use grapheme_extract() to loop across a UTF-8 string character by character.

<?php

$str = "سabcक’…";
// if the previous line didn't come through, the string contained:
//U+0633,U+0061,U+0062,U+0063,U+0915,U+2019,U+2026

$n = 0;

for (    $start = 0, $next = 0, $maxbytes = strlen($str), $c = '';
        $start < $maxbytes;
        $c = grapheme_extract($str, 1, GRAPHEME_EXTR_MAXCHARS , ($start = $next), $next)
    )
{
    if (empty($c))
        continue;
    echo "This utf8 character is " . strlen($c) . " bytes long and its first byte is " . ord($c[0]) . "\n";
    $n++;
}
echo "$n UTF-8 characters in a string of $maxbytes bytes!\n";
// Should print: 7 UTF8 characters in a string of 14 bytes!
?>
narainsbrain на yahoo точка com
пред 2 години
The other comments on this page were helpful for me.
However, consider using something better than empty($value) when checking the value returned by grapheme_extract since it could as well return something like "0" (which of course evaluates to false).
евген.гритсај@gmail.com
пред 5 години
Looping through grapheme clusters:

<?php

// Example taken from Rust documentation: https://doc.rust-lang.org/book/ch08-02-strings.html#bytes-and-scalar-values-and-grapheme-clusters-oh-my
$str = "नमस्ते";
// Alternatively:
//$str = pack('C*', ...[224, 164, 168, 224, 164, 174, 224, 164, 184, 224, 165, 141, 224, 164, 164, 224, 165, 135]);
$next = 0;
$maxbytes = strlen($str);

var_dump($str);

while ($next < $maxbytes) {
    $char = grapheme_extract($str, 1, GRAPHEME_EXTR_COUNT, $next, $next);
    if (empty($char)) {
        continue;
    }
    echo "{$char} - This utf8 character is " . strlen($char) . ' bytes long', PHP_EOL;
}

//string(18) "नमस्ते"
//न - This utf8 character is 3 bytes long
//म - This utf8 character is 3 bytes long
//स् - This utf8 character is 6 bytes long
//ते - This utf8 character is 6 bytes long
?>
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.