Класс IntlCodePointBreakIterator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π­Ρ‚ΠΎΡ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ΄Π°ΠΌΠΈ символов UTF-8.

ΠžΠ±Π·ΠΎΡ€ класса

class IntlCodePointBreakIterator extends IntlBreakIterator {
/* НаслСдуСмыС константы */
/* ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ */
public function getLastCodePoint(): int
/* НаслСдуСмыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ */
public function IntlBreakIterator::current(): int
public function IntlBreakIterator::first(): int
public function IntlBreakIterator::following(int $offset): int
public function IntlBreakIterator::isBoundary(int $offset): bool
public function IntlBreakIterator::last(): int
public function IntlBreakIterator::next(?int $offset = null): int
public function IntlBreakIterator::preceding(int $offset): int
public function IntlBreakIterator::previous(): int
public function IntlBreakIterator::setText(string $text): bool
}

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  • IntlCodePointBreakIterator::getLastCodePoint β€” ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠ΄ символа, Π²Ρ‹Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π²ΠΏΠ΅Ρ€Ρ‘Π΄ ΠΈΠ»ΠΈ Π½Π°Π·Π°Π΄
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1 note

up
1
Matt Kynx ΒΆ
3 years ago
An example of using this to find all the code points in a string that cannot be transliterated to Latin-ASCII:

<?php

$string = "Народm, Intl gurus get paid €10000/hr 😁";

$latinAscii = Transliterator::create('NFC; Any-Latin; Latin-ASCII;');
$transliterated = $latinAscii->transliterate($string);

$codePoints = IntlBreakIterator::createCodePointInstance();
$codePoints->setText($transliterated);

foreach ($codePoints->getPartsIterator() as $char) {
    $ord = IntlChar::ord($char);
    if (255 < $ord) {
        echo IntlChar::charName($ord) . "\n";
    }
}
?>

Outputs:
EURO SIGN
GRINNING FACE WITH SMILING EYES