Forum und email

preg_split

(PHP 4, PHP 5)

preg_split — Sztringet darabol fel reguláris kifejezésre illeszkedő részei mentén

Leírás

array preg_split ( string $pattern , string $subject [, int $limit [, int $flags ]] )

Note: A flags paraméterrel a PHP 4 Beta 3-ban lett kiegészítve.

Ez a függvény a pattern minta illesztésének határai mentén darabolja fel a subject szöveget, és a szövegdarabokat tömbbe összefogva adja vissza.

Ha a limit meg van adva, akkor csak limit számú elemmel tér vissza. A limit értéke lehet -1 (jelentése: nincs korlát), és ez akkor hasznos, ha a flags paramétert egy konkrét korlát megadása nélkül kell beállítani.

A flags a következő jelzőknek bármilyen kombinációja lehet a ( bitszintű | operátorral):

PREG_SPLIT_NO_EMPTY
Ekkor csak a nem üres szövegrészeket adja vissza a preg_split().
PREG_SPLIT_DELIM_CAPTURE
Ekkor a kerekzárójelek közé fogott ("gyűjtő") részmintára illeszkedő szövegrészeket is visszadja a függvény. Ez a jelző 4.0.5 verziótól használható.
PREG_SPLIT_OFFSET_CAPTURE

Minden egyezéshez az egyezés kezdőpozicióját is visszaadja az eredményben. Ez maga után vonja, hogy a visszaadott tömb minden eleme olyan tömb lesz, amelynek a 0. indexe az illeszkedő szöveget tartalmazza, míg az 1. indexen levő elem ennek a subject -en belüli kezdőpozicióját. Ez a jelzőbit PHP 4.3.0 verziójától használható.

Example#1 preg_split() példa : a keresett szöveg kucslszavait adja vissza.

// Feldarabolja a kifejezést vesszők és térközkarakterek mentén,
// amelyek a következők " ", \r, \t, \n és \f .
$kulcsszavak = preg_split ("/[\s,]+/", "hypertext language, programming");

Example#2 Sztring karakterekre darabolása

$sztring = 'karakterfűzér';
$karakterek = preg_split('//', $sztring, -1, PREG_SPLIT_NO_EMPTY);
print_r($karakterek);

Example#3 Az illeszkedések és a pozicióik a szöveg feldarabolása után

$sztring = 'hypertext language programming';
$szavak  = preg_split('/ /', $sztring, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($szavak);

will yield

Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )

    [1] => Array
        (
            [0] => language
            [1] => 10
        )

    [2] => Array
        (
            [0] => programming
            [1] => 19
        )
)

Lásd még: spliti(), split(), implode(), preg_match(), preg_match_all() és preg_replace()!