preg_split

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_split -- Suddivisione di una stringa tramite le espressioni regolari

Descrizione

array preg_split ( string espressione_regolare, string testo [, int limite [, int flags]])

La funzione restituisce una matrice di parti di testo suddivisi tramite i criteri indicati da espressione_regolare.

Se viene specificato il parametro limite, la funzione restituisce tante parti del testo iniziale quante sono indicate da limite. Può essere usato il valore -1 per indicare "nessun limite". Ciò torna utile in abbinamento all'uso del parametro flags.

Il parametro flags può essere la combinazione dei seguenti flag (la combinazione di più flag avviene con l'operatore |):

PREG_SPLIT_NO_EMPTY

Specificando questo flag, la funzione preg_split() restituisce spezzoni di testo non vuoti.

PREG_SPLIT_DELIM_CAPTURE

Con l'uso di questo flag, la funzione cattura e restituisce eventuali espressioni poste tra parentesi nel parametro espressione_regolare. Questo flag è stato aggiunto nella versione 4.0.5.

PREG_SPLIT_OFFSET_CAPTURE

Se viene impostato questo flag, per ogni testo riconosciuto viene restituito l'offset della stringa. Occorre notare che questo cambia il tipo di valore restituito nell'array; infatti ogni elemento è, a sua volta, un'array composto dalla stringa riconosciuta, all'indice 0, e dall'offset della stringa nell'indice 1. Questa costante è disponibile a partire dalla versione 4.3.0 di PHP.

Esempio 1. Esempio di preg_split(): Come ottenere le parti di un testo.

<?php
// Suddivide la seguente frase in base alla presenza di virgole, spazi bianchi,
// e altri caratteri speciali quali \r, \t, \n ed \f
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
?>

Esempio 2. Esempio di suddivisione di un testo in caratteri.

<?php
$str
= 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

Esempio 3. Suddivisione di una stringa in testi riconosciuti con i relativi offset.

<?php
$str
= 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>

visualizzerà

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

Nota: Il parametro flags è stato aggiunto nella versione 4 Beta 3 di PHP.

Vedere anche spliti(), split(), implode(), preg_match(), preg_match_all() e preg_replace().