(PHP 5 >= 5.5.0, PHP 7, PHP 8)
A "break iterator" is an ICU object that exposes methods for locating boundaries in text (e.g. word or sentence boundaries). The PHP IntlBreakIterator serves as the base class for all types of ICU break iterators. Where extra functionality is available, the intl extension may expose the ICU break iterator with suitable subclasses, such as IntlRuleBasedBreakIterator or IntlCodePointBreakIterator .
This class implements IteratorAggregate . Traversing an
IntlBreakIterator yields non-negative integer
values representing the successive locations of the text boundaries,
expressed as UTF-8 code units (byte) counts, taken from the beginning of
the text (which has the location 0
). The keys yielded
by the iterator simply form the sequence of natural numbers
{0, 1, 2, ...}
.
IntlBreakIterator::DONE
int
IntlBreakIterator::WORD_NONE
int
IntlBreakIterator::WORD_NONE_LIMIT
int
IntlBreakIterator::WORD_NUMBER
int
IntlBreakIterator::WORD_NUMBER_LIMIT
int
IntlBreakIterator::WORD_LETTER
int
IntlBreakIterator::WORD_LETTER_LIMIT
int
IntlBreakIterator::WORD_KANA
int
IntlBreakIterator::WORD_KANA_LIMIT
int
IntlBreakIterator::WORD_IDEO
int
IntlBreakIterator::WORD_IDEO_LIMIT
int
IntlBreakIterator::LINE_SOFT
int
IntlBreakIterator::LINE_SOFT_LIMIT
int
IntlBreakIterator::LINE_HARD
int
IntlBreakIterator::LINE_HARD_LIMIT
int
IntlBreakIterator::SENTENCE_TERM
int
IntlBreakIterator::SENTENCE_TERM_LIMIT
int
IntlBreakIterator::SENTENCE_SEP
int
IntlBreakIterator::SENTENCE_SEP_LIMIT
int
Version | Description |
---|---|
8.4.0 | The class constants are now typed. |
8.0.0 | IntlBreakIterator implements IteratorAggregate now. Previously, Traversable was implemented instead. |
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 -----