PHP 8.5.0 Alpha 1 available for testing

La clase IntlBreakIterator

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

Introducción

Un "delimitador de ruptura" es un objeto ICU que expone métodos para localizar delimitaciones en texto (por ejemplo, delimitaciones de palabras o frases). La clase IntlBreakIterator de PHP sirve como clase base para todos los tipos de delimitadores de ruptura ICU. Cuando una funcionalidad adicional está disponible, la extensión intl puede exponer el delimitador de ruptura ICU con subclases apropiadas, tales como IntlRuleBasedBreakIterator o IntlCodePointBreakIterator.

Esta clase implementa IteratorAggregate. Recorrer un IntlBreakIterator produce valores enteros no negativos que representan las posiciones sucesivas de las delimitaciones de texto, expresadas como conteos de unidades de código UTF-8 (octetos), tomados desde el inicio del texto (que tiene la posición 0). Las claves producidas por el iterador forman simplemente la secuencia de números naturales {0, 1, 2, …}.

Sinopsis de la Clase

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
}

Historial de cambios

Versión Descripción
8.4.0 Las constantes de clase ahora están tipadas.
8.0.0 IntlBreakIterator ahora implementa IteratorAggregate. Antes, Traversable era implementada en su lugar.

Tabla de contenidos

add a note

User Contributed Notes 1 note

up
14
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