Section courante

A propos

Section administrative du site

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

Exemples

Voici un exemple montrant comment subdiviser des éléments séparé par «@», des caractères et un «:» (@T1:, @S:, @C1:, @R2,...) :

Essayer maintenant !
  1. <?php
  2. 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));
  3. ?>

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 !
  1. <?php
  2. 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));
  3. ?>

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 !
  1. <?php
  2. $source = "Ligne 1\nLigne 2\nLigne 3\nLigne 4";
  3. $array = preg_split( "/[\n\r]+/Uis", $source, 0, PREG_SPLIT_NO_EMPTY );
  4. var_dump($array);
  5. ?>

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 !
  1. <?php
  2. $source = "<html><head><meta name=\"KEYWORDS\" content=\"Pomme, Patate, Orange\" /></head><body>Page de fruits<body></html>";
  3. preg_match('/<meta[^>]*name="keywords" content="(.+?)"/i', $source, $m);
  4. $KeywordsList = preg_split("/[\s,]+/", $m[1]);
  5. var_dump($KeywordsList);
  6. ?>

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

Dernière mise à jour : Vendredi, le 3 octobre 2014