(PHP 4, PHP 5, PHP 7, PHP 8)
explode — Scinde une chaîne de caractères en segments
explode() retourne un tableau de chaînes de caractères,
chacune d'elle étant une sous-chaîne
du paramètre string extraite en utilisant le séparateur
separator.
separatorLe séparateur.
stringLa chaîne initiale.
limit
Si limit est défini et positif,
le tableau retourné contient, au maximum,
limit éléments, et le dernier
élément contiendra le reste de la chaîne.
Si le paramètre limit est négatif,
tous les éléments, excepté les -limit
derniers éléments sont retournés.
Si limit vaut zéro, il est traité
comme valant 1.
Note:
Antérieur à PHP 8.0, implode() acceptait ses paramètres dans n'importe quel ordre. explode() n'a jamais supporté ceci : vous devez vous assurer que le paramètre
separatorsoit placé avant le paramètrestring.
Retourne un tableau de chaînes de caractères créées en scindant
la chaîne du paramètre string en plusieurs
morceaux suivant le paramètre separator.
Si separator est une chaîne vide (""),
explode() lancera une ValueError. Si
separator contient une valeur qui n'est pas contenue
dans string ainsi qu'une valeur négative pour le paramètre
limit, alors explode()
retournera un tableau vide, sinon, un tableau contenant la chaîne
string entière.
Si les valeurs de separator apparaissent au début
ou à la fin de string, ces valeurs seront ajouté
comme une valeur d'un array vide soit en la première ou
dernière position du array retourné respectivement.
| Version | Description |
|---|---|
| 8.0.0 |
explode() lancera désormais une ValueError
quand le paramètre separator est donné une chaîne
vide ("").
Précédemment, explode() retournait false.
|
Exemple #1 Exemple avec explode()
<?php
// Exemple 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
// Exemple 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>
Exemple #2 Exemple de valeurs retournées par la fonction explode()
<?php
/* Une chaîne qui ne contient pas de délimiteur va retourner un tableau
contenant qu'un seul élément représentant la chaîne originale */
$input1 = "hello";
$input2 = "hello,there";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );
?>L'exemple ci-dessus va afficher :
array(1)
(
[0] => string(5) "hello"
)
array(2)
(
[0] => string(5) "hello"
[1] => string(5) "there"
)
array(2)
(
[0] => string(0) ""
[1] => string(0) ""
)
Exemple #3 Exemple avec explode() et le paramètre limit
<?php
$str = 'one|two|three|four';
// limit positif
print_r(explode('|', $str, 2));
// limit négatif
print_r(explode('|', $str, -1));
?>L'exemple ci-dessus va afficher :
Array
(
[0] => one
[1] => two|three|four
)
Array
(
[0] => one
[1] => two
[2] => three
)
Note: Cette fonction gère les chaînes binaires.