Manuel PHP
Précédent |  | Suivant

# preg_split

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

preg_split -- Eclate une chaîne par expression rationnelle

## Description

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

preg_split() retourne un tableau contenant les sous-chaînes de subject, séparées par les chaînes qui vérifient pattern.

Si limit est spécifié, alors seules les limit premières sous-chaînes sont retournées et si limit vaut -1, cela signifie en fait "sans limite", ce qui est utile pour passer le paramètre flags.

flags peut être la combinaison des options suivantes (combinées avec l'opérateur |):

`PREG_SPLIT_NO_EMPTY`

  Si cette option est activée, seules les sous-chaînes non vides seront retournées par preg_split().

`PREG_SPLIT_DELIM_CAPTURE`

  Si cette option est activée, les expressions entre parenthèses entre les délimiteurs de masques seront aussi capturées et retournées. Cette option a été ajoutée en PHP 4.0.5.

`PREG_SPLIT_OFFSET_CAPTURE`

  Si cette option est activée, pour chaque résultat, la position de celui-ci sera retournée. Notez que cela change la valeur retournée en un tableau où chaque élément est un tableau constitué de la chaîne trouvée à la position 0 et la position de la chaîne dans subject à la position 1. Cette option est disponible depuis PHP 4.3.0.

> Astuce : Si vous n'avez pas besoin de la puissance des expressions régulières, vous pouvez choisir des alternatives plus rapides (quoique plus simples) comme explode() ou str_split().

Exemple 1. Éclatement d'une chaîne de recherche

`<?php // scinde la phrase grâce aux virgules et espacements // ce qui inclus les " ", \r, \t, \n et \f $keywords = preg_split("/[\s,]+/", "langage hypertexte, programmation"); ?>`

Exemple 2. Scinder une chaîne en caractères

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

Exemple 3. Scinde une chaîne et capture les positions

`<?php $str = 'langage hypertexte, programmation'; $chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE); print_r($chars); ?>`

L'exemple ci-dessus va afficher :

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

        [1] => Array
            (
                [0] => hypertexte,
                [1] => 8
            )

        [2] => Array
            (
                [0] => programmation
                [1] => 20
            )

    )

> Note : Le paramètre flags a été ajouté en PHP 4 Bêta 3.

Voir aussi spliti(), split(), implode(), preg_match(), preg_match_all() et preg_replace().

Précédent | Sommaire | Suivant
preg_replace | Niveau supérieur | Fonctions PDF