©
本文档使用
php中文网手册 发布
(No version information available, might only be in Git)
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 IntlCodePointBreaIterator.
This class implements Traversable. 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 beggining of the text (which has the location 0). The keys yielded by the iterator simply form the sequence of natural numbers {0, 1, 2, …}.
$"locale"
] )$"locale"
] )$"locale"
] )$"locale"
] )$"locale"
] )$"offset"
)$"locale_type"
)$"key_type"
] )$"offset"
)$"offset"
] )$"offset"
)$"text"
)IntlBreakIterator::DONE IntlBreakIterator::WORD_NONE IntlBreakIterator::WORD_NONE_LIMIT IntlBreakIterator::WORD_NUMBER IntlBreakIterator::WORD_NUMBER_LIMIT IntlBreakIterator::WORD_LETTER IntlBreakIterator::WORD_LETTER_LIMIT IntlBreakIterator::WORD_KANA IntlBreakIterator::WORD_KANA_LIMIT IntlBreakIterator::WORD_IDEO IntlBreakIterator::WORD_IDEO_LIMIT IntlBreakIterator::LINE_SOFT IntlBreakIterator::LINE_SOFT_LIMIT IntlBreakIterator::LINE_HARD IntlBreakIterator::LINE_HARD_LIMIT IntlBreakIterator::SENTENCE_TERM IntlBreakIterator::SENTENCE_TERM_LIMIT IntlBreakIterator::SENTENCE_SEP IntlBreakIterator::SENTENCE_SEP_LIMIT [#1] SenseException [2013-12-04 08:53:43]
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 -----