Comment utiliser la fonction explode() en PHP ?
La fonction explode() de PHP est particulièrement utile lorsque vous avez besoin de diviser une chaîne sur un délimiteur spécifique. explode() permet de transformer une chaîne en tableau dont les éléments sont séparés par le seul délimiteur. Ce qui peut être pratique dans de nombreux cas comme par exemple, pour le traitement des données, dans un script de localisation d’adresse IP.
Les deux types de fonctions explode en PHP
Il existe deux types de fonctions “explode” en PHP :
- La fonction native explode() qui permet de découper une chaîne de caractères en un tableau en utilisant un délimiteur spécifié.
- La fonction mb_explode() qui est similaire à la fonction native explode(), mais qui prend en charge les caractères multibytes pour la découpe de la chaîne de caractères.
Qu’est-ce qu’un caractère multibytes ?
Une chaîne de caractères multibytes est une chaîne de caractères qui contient des caractères qui nécessitent plus d’un octet de stockage pour être représentés. Cela signifie que ces caractères ne peuvent pas être stockés en utilisant un seul octet comme le font les caractères ASCII classiques.
Les langues comme le japonais, le chinois, le coréen, l’arabe, le russe, etc… utilisent des caractères multibytes, car ils ont un grand nombre de caractères distincts qui ne peuvent pas être représentés en utilisant un seul octet.
Les fonctions PHP natives ne prennent pas en charge les caractères multibytes de manière efficace. Pour travailler avec des chaînes de caractères multibytes en PHP, il est recommandé d’utiliser les fonctions de l’extension multibyte string (mbstring) qui fournissent des fonctionnalités étendues pour travailler avec des chaînes multibytes.
Il est important de noter que pour utiliser les fonctions mbstring, il faut activer l’extension dans le fichier de configuration de PHP (php.ini) en décommentant la ligne extension=mbstring.
Exemple d’utilisation de la fonction explode()
$string = "Hello,world! How are you today?"; $delimiter = " "; $words = explode($delimiter, $string); print_r($words);
Ce bout de code permet de découper la chaîne de caractères “Hello,world! How are you today?” en utilisant le délimiteur ” ” (espace) et stock le résultat dans un tableau appelé $words. (vous pouvez utiliser le délimiteur que vous souhaitez)
Sortie de la fonction explode() :
Array ( [0] => Hello,world! [1] => How [2] => are [3] => you [4] => today? )
Exemple d’utilisation de la fonction mb_explode()
$string = "こんにちは、世界!今日はお元気ですか?"; $delimiter = "、"; $words = mb_explode($delimiter, $string); print_r($words);
Ce code découpe la chaîne de caractères “こんにちは、世界!今日はお元気ですか?” en utilisant le délimiteur “、” (virgule japonaise) et stock le résultat dans un tableau appelé $words.
Sortie de la fonction mb_explode() :
Array ( [0] => こんにちは [1] => 世界!今日はお元気ですか? )
La fonction mb_explode est utile pour les chaînes de caractères multibytes, mais elle peut également être utilisée pour les chaînes de caractères non multibytes, comme dans l’exemple suivant :
$string = "Bonjour, comment vas-tu aujourd'hui ?"; $delimiter = ","; $words = mb_explode($delimiter, $string); print_r($words);
Comment parcourir la fonction explode() en PHP ?
Plusieurs méthodes existent pour parcourir votre explode() et en ressortir les résultats.
La boucle for
$string = "Hello,world! How are you today?"; $delimiter = " "; $words = explode($delimiter, $string); $count = count($words); for ($i = 0; $i < $count; $i++) { echo $words[$i] . ""; }
La boucle foreach
$string = "Hello,world! How are you today?"; $delimiter = " "; $words = explode($delimiter, $string); foreach ($words as $word) { echo $word . ""; }
La boucle while
$string = "Hello,world! How are you today?"; $delimiter = " "; $words = explode($delimiter, $string); $i = 0; while ($i < count($words)) { echo $words[$i] . " "; $i++; }
Sortie des boucles :
Hello,world!
How
are
you
today?
La fonction explode en pratique
Remplacer la fonction explode par une expression régulière
Qu’est-ce qu’une expression régulière et à quoi ça sert
Une expression régulière (ou regex) est un modèle qui permet de rechercher des correspondances dans une chaîne de caractères. En PHP, les expressions régulières sont utilisées pour effectuer des opérations de recherche, de remplacement et de validation de données.
Elles sont composées de caractères normaux et de caractères spéciaux qui ont un rôle spécifiques pour la recherche de correspondances. Par exemple, le caractère “.” correspond à n’importe quel caractère, tandis que le caractère “*” correspond à zéro ou plusieurs occurrences du caractère précédent.
Elles sont souvent utilisées pour effectuer des validations d’adresses e-mail, numéros de téléphone, codes postaux, etc. Cela peut être indispensable dans le cas ou vous utiliseriez l’envoi de mail avec PHPMailer de manière automatique.
En PHP, il existe plusieurs fonctions pour travailler avec les expressions régulières, telles que preg_match(), preg_match_all(), preg_replace() et preg_split() .
Exemple de découpage de chaîne sans l’utilisation de la fonction explode()
$string = "Hello,world! How are you today?"; $pattern = '/[\s,!]+/'; $words = preg_split($pattern, $string); print_r($words);
La résultat sera exactement le même qu’en utilisant la fonction explode() :
Array ( [0] => Hello [1] => world [2] => How [3] => are [4] => you [5] => today? )