(PHP 4, PHP 5, PHP 7)
preg_split — Éclate une chaîne par expression rationnelle
$pattern
, string $subject
[, int $limit
= -1
[, int $flags
= 0
]] )Éclate une chaîne par expression rationnelle.
pattern
Le masque à chercher, sous la forme d'une chaîne de caractères.
subject
La chaîne d'entrée.
limit
Si limit
est spécifié, alors seules les
limit
premières sous-chaînes sont retournées
avec le reste de la chaîne placé dans la dernière sous-chaîne.
Si vous définissez le paramètre limit
à -1,
0, ou NULL
, cela signifie "aucune limite" et, vous pouvez
utiliser la valeur NULL
pour ignorer le paramètre
flags
.
flags
flags
peut être la combinaison des
options suivantes (combinées avec l'opérateur |):
PREG_SPLIT_NO_EMPTY
PREG_SPLIT_DELIM_CAPTURE
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.
Retourne un tableau contenant les sous-chaînes de subject
,
séparées par les chaînes qui vérifient pattern
.
Exemple #1 Exemple avec preg_split() : É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");
print_r($keywords);
?>
L'exemple ci-dessus va afficher :
Array ( [0] => langage [1] => hypertexte [2] => 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);
?>
L'exemple ci-dessus va afficher :
Array ( [0] => s [1] => t [2] => r [3] => i [4] => n [5] => g )
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 ) )
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().
Si la recherche d'une correspondance échoue, un tableau contenant qu'un seul élément contenant la chaîne d'entrée sera retourné.