PHP 8.4.2 Released!

A classe IntlBreakIterator

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

Introdução

Um “iterador de quebra” é um objeto ICU que expõe métodos para localização de limites no texto (ex.: início/fim de palavras ou frases). A classe IntlBreakIterator do PHP serve como classe base para todos os tipos de iteradores de quebra ICU. Onde existir funcionalidade extra, a extensão Intl pode expor o iterador de quebra ICU com subclasses convenientes, como IntlRuleBasedBreakIterator ou IntlCodePointBreakIterator.

Esta classe implementa a interface IteratorAggregate. Percorrer um IntlBreakIterator produz valores inteiros não negativos que representam as localizações sucessivas dos limites do texto, expressos como contagem de unidades de código (bytes) UTF-8, tomadas do início do texto (que tem a localização 0). As chaves geradas pelo iterador formam simplesmente a sequência de números naturais {0, 1, 2, …}.

Resumo da classe

class IntlBreakIterator implements IteratorAggregate {
/* Constantes */
public const int DONE;
public const int WORD_NONE;
public const int WORD_NONE_LIMIT;
public const int WORD_NUMBER;
public const int WORD_NUMBER_LIMIT;
public const int WORD_LETTER;
public const int WORD_LETTER_LIMIT;
public const int WORD_KANA;
public const int WORD_KANA_LIMIT;
public const int WORD_IDEO;
public const int WORD_IDEO_LIMIT;
public const int LINE_SOFT;
public const int LINE_SOFT_LIMIT;
public const int LINE_HARD;
public const int LINE_HARD_LIMIT;
public const int SENTENCE_TERM;
public const int SENTENCE_TERM_LIMIT;
public const int SENTENCE_SEP;
public const int SENTENCE_SEP_LIMIT;
/* Métodos */
private __construct()
public current(): int
public first(): int
public following(int $offset): int
public getErrorCode(): int
public getLocale(int $type): string|false
public getPartsIterator(string $type = IntlPartsIterator::KEY_SEQUENTIAL): IntlPartsIterator
public getText(): ?string
public isBoundary(int $offset): bool
public last(): int
public next(?int $offset = null): int
public preceding(int $offset): int
public previous(): int
public setText(string $text): bool
}

Registro de Alterações

Versão Descrição
8.4.0 As constantes de classe agora são tipadas.
8.0.0 IntlBreakIterator agora implementa IteratorAggregate. Anteriormente, Traversable era implementado.

Índice

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
9
SenseException
11 years ago
Since there is no excample for the usage of the IntlBreakIterator yet, I made a small one:

<?php

$text
= "Si contano i danni. Un morto a Roma, un treno ".
"deragliato e quattro feriti a Foggia, strade chiuse in tutto ".
"il sud, allagamenti e danni sulla costa ionica. A Pescara, ".
"1.500 sfollati per l'esondazione del Fosso Vallelunga. ".
"Dall'inizio dell'anno l'agricoltura ha subito un miliardo ".
"di euro di danni.";

$locale = 'it_IT';

$i = IntlBreakIterator::createSentenceInstance($locale);
$i->setText($text);

foreach(
$i->getPartsIterator() as $sentence) {
echo
$sentence . PHP_EOL . '----- next -----' . PHP_EOL;
}

?>

Result:

Si contano i danni.
----- next -----
Un morto a Roma, un treno deragliato e quattro feriti a Foggia, strade chiuse in tutto il sud, allagamenti e danni sulla costa ionica.
----- next -----
A Pescara, 1.500 sfollati per l'esondazione del Fosso Vallelunga.
----- next -----
Dall'inizio dell'anno l'agricoltura ha subito un miliardo di euro di danni.
----- next -----
To Top