The IntlBreakIterator class
(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
更新日志
版本 | 说明 |
---|---|
8.4.0 | The class constants are now typed. |
8.0.0 | IntlBreakIterator implements IteratorAggregate now. Previously, Traversable was implemented instead. |
目录
- IntlBreakIterator::__construct — Private constructor for disallowing instantiation
- IntlBreakIterator::createCharacterInstance — Create break iterator for boundaries of combining character sequences
- IntlBreakIterator::createCodePointInstance — Create break iterator for boundaries of code points
- IntlBreakIterator::createLineInstance — Create break iterator for logically possible line breaks
- IntlBreakIterator::createSentenceInstance — Create break iterator for sentence breaks
- IntlBreakIterator::createTitleInstance — Create break iterator for title-casing breaks
- IntlBreakIterator::createWordInstance — Create break iterator for word breaks
- IntlBreakIterator::current — Get index of current position
- IntlBreakIterator::first — Set position to the first character in the text
- IntlBreakIterator::following — Advance the iterator to the first boundary following specified offset
- IntlBreakIterator::getErrorCode — Get last error code on the object
- IntlBreakIterator::getErrorMessage — Get last error message on the object
- IntlBreakIterator::getLocale — Get the locale associated with the object
- IntlBreakIterator::getPartsIterator — Create iterator for navigating fragments between boundaries
- IntlBreakIterator::getText — Get the text being scanned
- IntlBreakIterator::isBoundary — Tell whether an offset is a boundaryʼs offset
- IntlBreakIterator::last — Set the iterator position to index beyond the last character
- IntlBreakIterator::next — Advance the iterator the next boundary
- IntlBreakIterator::preceding — Set the iterator position to the first boundary before an offset
- IntlBreakIterator::previous — Set the iterator position to the boundary immediately before the current
- IntlBreakIterator::setText — Set the text being scanned
用户贡献的备注 1 note
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 -----
备份地址:http://www.lvesu.com/blog/php/class.intlbreakiterator.php