(PHP 4, PHP 5, PHP 7, PHP 8)
preg_split — Éclate une chaîne par expression rationnelle
Description
preg_split(
string
$pattern,
string
$subject,
int
$limit = -1,
int
$flags = 0
): array|false
Liste de paramètres
-
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.
Une limit de -1 ou 0 signifie "aucune limite".
-
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.
-
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.
Valeurs de retour
Retourne un tableau contenant les sous-chaînes de subject,
séparées par les chaînes qui vérifient pattern, ou false si une erreur survient.
Erreurs / Exceptions
Si le masque regex passé ne compile pas à une regex valide, une E_WARNING est émise.
Exemples
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
)
)
Notes
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().
Astuce
Si la recherche d'une correspondance échoue, un tableau contenant qu'un
seul élément contenant la chaîne d'entrée sera retourné.
Voir aussi
- Masques PCRE
- preg_quote() - Protection des caractères spéciaux des expressions régulières
- implode() - Rassemble les éléments d'un tableau en une chaîne
- preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
- preg_match_all() - Expression rationnelle globale
- preg_replace() - Rechercher et remplacer par expression rationnelle standard
- preg_last_error() - Retourne le code erreur de la dernière expression PCRE exécutée