Présentation et syntaxe de explode
En PHP, la fonction « explode » vous permet de prendre une longue phrase et de la découper en morceaux plus petits. Vous choisissez un caractère, comme une virgule ou un espace, pour dire où couper. Ça transforme votre phrase en une liste de morceaux que vous pouvez examiner un par un. C’est un peu comme couper un fil à des points précis pour en faire des petits bouts.
explode(string $delimiter, string $string, int $limit = PHP_INT_MAX): array
- $delimiter : le caractère ou la chaîne servant de séparateur ;
- $string : la chaîne de caractères à segmenter ;
- $limit (facultatif) : le nombre maximal de segments à retourner.
La fonction renvoie un tableau, chaque élément correspondant à un segment de la chaîne séparé par le délimiteur.
Exemple d’utilisation simple
Pour extraire des mots ou des éléments d’une chaîne, explode
est une solution rapide :
$phrase = "PHP est rapide et flexible"; $mots = explode(" ", $phrase); print_r($mots);
Résultat :
Array ( [0] => PHP [1] => est [2] => rapide [3] => et [4] => flexible )
Ici, l’espace " "
sert de délimiteur et chaque mot devient un élément du tableau.
Utilisation avec un délimiteur personnalisé
Si les éléments sont séparés par un autre caractère, comme une virgule, explode
l’accepte également :
$fruits = "pomme,banane,orange,fraise"; $tableauFruits = explode(",", $fruits); print_r($tableauFruits);
Résultat :
Array ( [0] => pomme [1] => banane [2] => orange [3] => fraise )
Avec la virgule comme délimiteur, chaque fruit devient un élément du tableau.
Limitation du nombre d’éléments avec $limit
Le paramètre $limit
peut limiter la quantité de segments à extraire. Si $limit
est positif, il détermine le nombre maximal d’éléments à retourner, le dernier contenant le reste de la chaîne.
$tech = "PHP,MySQL,JavaScript,HTML,CSS"; $langages = explode(",", $tech, 3); print_r($langages);
Résultat :
Array ( [0] => PHP [1] => MySQL [2] => JavaScript,HTML,CSS )
Ici, $limit
vaut 3, donc explode
retourne trois éléments : deux premiers segments et le troisième contenant le reste.
Utilisation d’un $limit
négatif
Avec $limit
négatif, on peut exclure un certain nombre d’éléments de la fin du tableau.
$mois = "janvier,février,mars,avril,mai"; $tableauMois = explode(",", $mois, -1); print_r($tableauMois);
Résultat :
Array ( [0] => janvier [1] => février [2] => mars [3] => avril )
Le $limit
à -1
exclut le dernier élément, "mai"
.
Cas d’usage courant
explode
est bien adaptée pour :
- Diviser des chaînes structurées (CSV, listes, etc.) ;
- Extraire des informations de chaînes avec des séparateurs fixes ;
- Manipuler des URLs ou des chemins en décomposant les segments.
Pour des séparations plus complexes ou basées sur des motifs particuliers, preg_split
sera préférable, notamment grâce aux expressions régulières.
Gérer les chaînes multioctets (multibyte)
La fonction explode
de PHP ne prend pas directement en charge les chaînes multibyte, c’est-à-dire les caractères qui occupent plusieurs octets, comme les caractères chinois, japonais ou les emojis. Pour manipuler ce type de chaînes, l’extension mbstring
est recommandée. Elle propose des fonctions dédiées aux chaînes multibyte, comme mb_split
, qui permet de diviser une chaîne en utilisant des expressions régulières.
Exemple avec mb_split
$chaine = "PHPは素晴らしい言語です"; $mots = mb_split("は", $chaine); // Utilisation de "は" comme séparateur print_r($mots);
Résultat :
Array ( [0] => PHP [1] => 素晴らしい言語です )
Grâce à mb_split
, on peut correctement découper des chaînes multibyte sans risquer d’erreurs de segmentation, ce qui n’est pas possible directement avec explode
.
Attention aux erreurs
- Délimiteur vide (
""
) : Si le délimiteur est une chaîne vide (""
),explode
déclenche une erreur de type « ValueError » qui interrompt le script. PHP n’accepte pas un délimiteur vide car il ne peut pas segmenter la chaîne sans un critère de découpe clair. Pour éviter cela, assurez-vous que la variable contenant le délimiteur n’est jamais vide en ajoutant, par exemple, une vérification conditionnelle - Sensibilité à la casse :
explode
distingue les majuscules des minuscules dans le délimiteur. Par exemple, si"a"
est utilisé comme délimiteur, il ne séparera pas les parties avec"A"
(majuscule). Pour les cas où la casse pourrait varier, une transformation préalable de la chaîne (commestrtolower
pour tout mettre en minuscules) permet de garantir que le délimiteur soit appliqué uniformément.