PREG_SPLIT |
Regulière _ Découper |
---|---|
PHP 4+ |
Syntaxe
function preg_split($pattern, $subject); |
function preg_split($pattern, $subject, $limit); |
function preg_split($pattern, $subject, $limit, $flags); |
Paramètres
Nom | Description | |
---|---|---|
$pattern | Ce paramètre permet d'indiquer la chaine de caractères ou le tableau de recherche. | |
$subject | Ce paramètre permet d'indiquer la chaine de caractères ou le tableau contenant la source. | |
$limit | Ce paramètre permet d'indiquer le nombre de champ maximum que peut contenir le tableau. Les valeurs -1, 0 et NULL sont considéré comme illimité. | |
$flags | Ce paramètre permet d'indiquer les options de traitement : | |
Constante | Description | |
PREG_SPLIT_NO_EMPTY | Cette constante permet d'indiquer qu'uniquement les sous-chaines de caractères seront retournées par cette fonction. | |
PREG_SPLIT_DELIM_CAPTURE | Cette constante permet d'indiquer qu'il faut également joindre les délimiteurs dans la valeur de retour. Cette constante est disponible à partir de la version 4.0.5 du PHP. |
Retour
Valeur | Description |
---|---|
tableau | Ces valeurs permet d'indiquer le résultat de traitement dans un tableau d'élément. |
Description
Cette fonction permet de séparer en morceau une chaine de caractères à l'aide d'une expression régulière (regex) et met le résultat dans un tableau.
Remarques
- Lorsque la recherche n'a rien trouvé, vous recevrez un tableau avec un élément contenant la chaine de caractères intacts fournis comme paramètre.
- Si vous souhaitez séparé en sous-chaine de caractères une chaine de caractères à partir d'un séparateur unique, il peut-être préférable d'utiliser la fonction «explode» ou «str_split».
Exemples
Voici un exemple montrant comment subdiviser des éléments séparé par «@», des caractères et un «:» (@T1:, @S:, @C1:, @R2,...) :
Essayer maintenant !
- <?php
- echo nl2br(print_r(preg_split('`(\@\w+.*?\:)`',"@T1:Ceci est un mon titre@S:Sylvain Maltais@C:support@gladir.com@R2:Ceci est un résumé@R:Ceci est le texte principal"),true));
- ?>
on obtiendra le résultat suivant :
Array(
[0] =>
[1] => Ceci est un mon titre
[2] => Sylvain Maltais
[3] => support
[4] => Ceci est un résumé
[5] => Ceci est le texte principal
)
Voici un autre exemple montrant comment subdiviser des éléments séparé par «@», des caractères et un «:» (@T1:, @S:, @C1:, @R2,...) avec les séparateurs dans la liste :
Essayer maintenant !
- <?php
- echo nl2br(print_r(preg_split('`(\@\w+.*?\:)`',"@T1:Ceci est un mon titre@S:Sylvain Maltais@C:support@gladir.com@R2:Ceci est un résumé@R:Ceci est le texte principal", -1, PREG_SPLIT_DELIM_CAPTURE),true));
- ?>
on obtiendra le résultat suivant :
Array(
[0] =>
[1] => @T1:
[2] => Ceci est un mon titre
[3] => @S:
[4] => Sylvain Maltais
[5] => @C:
[6] => support
[7] => @gladir.com@R2:
[8] => Ceci est un résumé
[9] => @R:
[10] => Ceci est le texte principal
)
L'exemple suivant permet de mettre chacun des lignes de texte dans un tableau de données :
Essayer maintenant !
- <?php
- $source = "Ligne 1\nLigne 2\nLigne 3\nLigne 4";
- $array = preg_split( "/[\n\r]+/Uis", $source, 0, PREG_SPLIT_NO_EMPTY );
- var_dump($array);
- ?>
on obtiendra le résultat suivant :
array(4) { [0]=> string(7) "Ligne 1" [1]=> string(7) "Ligne 2" [2]=> string(7) "Ligne 3" [3]=> string(7) "Ligne 4" }L'exemple suivant permet d'extraire la liste de mots clefs contenu dans une page HTML :
Essayer maintenant !
- <?php
- $source = "<html><head><meta name=\"KEYWORDS\" content=\"Pomme, Patate, Orange\" /></head><body>Page de fruits<body></html>";
- preg_match('/<meta[^>]*name="keywords" content="(.+?)"/i', $source, $m);
- $KeywordsList = preg_split("/[\s,]+/", $m[1]);
- var_dump($KeywordsList);
- ?>
on obtiendra le résultat suivant :
array(3) { [0]=> string(5) "Pomme" [1]=> string(6) "Patate" [2]=> string(6) "Orange" }Voir également
Langage de programmation - PHP - Référence de procédures et de fonctions - preg_match
Langage de programmation - PHP - Référence de procédures et de fonctions - preg_replace
Langage de programmation - Perl - Les expressions régulières