php教程

The IntlBreakIterator class

(PHP 5 >= 5.5.0, PHP 7)

简介

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 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 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 implements Traversable {
/* 常量 */
const integer DONE = -1 ;
const integer WORD_NONE = 0 ;
const integer WORD_NONE_LIMIT = 100 ;
const integer WORD_NUMBER = 100 ;
const integer WORD_NUMBER_LIMIT = 200 ;
const integer WORD_LETTER = 200 ;
const integer WORD_LETTER_LIMIT = 300 ;
const integer WORD_KANA = 300 ;
const integer WORD_KANA_LIMIT = 400 ;
const integer WORD_IDEO = 400 ;
const integer WORD_IDEO_LIMIT = 500 ;
const integer LINE_SOFT = 0 ;
const integer LINE_SOFT_LIMIT = 100 ;
const integer LINE_HARD = 100 ;
const integer LINE_HARD_LIMIT = 200 ;
const integer SENTENCE_TERM = 0 ;
const integer SENTENCE_TERM_LIMIT = 100 ;
const integer SENTENCE_SEP = 100 ;
const integer SENTENCE_SEP_LIMIT = 200 ;
/* 方法 */
private __construct ( void )
public static createCharacterInstance ([ string $locale ] ) : IntlBreakIterator
public static createCodePointInstance ( void ) : IntlBreakIterator
public static createLineInstance ([ string $locale ] ) : IntlBreakIterator
public static createSentenceInstance ([ string $locale ] ) : IntlBreakIterator
public static createTitleInstance ([ string $locale ] ) : IntlBreakIterator
public static createWordInstance ([ string $locale ] ) : IntlBreakIterator
public current ( void ) : int
public first ( void ) : int
public following ( int $offset ) : int
public getErrorCode ( void ) : int
intl_get_error_code ( void ) : int
public getErrorMessage ( void ) : string
intl_get_error_message ( void ) : string
public getLocale ( string $locale_type ) : string
public getPartsIterator ([ int $key_type = IntlPartsIterator::KEY_SEQUENTIAL ] ) : IntlPartsIterator
public getText ( void ) : string
public isBoundary ( int $offset ) : bool
public last ( void ) : int
public next ([ int $offset ] ) : int
public preceding ( int $offset ) : int
public previous ( void ) : int
public setText ( string $text ) : bool
}

预定义常量

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

Table of Contents

User Contributed Notes

SenseException 04-Dec-2013 08:53
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 -----

CopyRight © 2008-2022 verySource.Com All Rights reserved. 京ICP备17048824号-1 京公网安备:11010502034788