(PHP 4, PHP 5, PHP 7, PHP 8)
strtok — Coupe une chaîne en segments
$string
, string $token
): string|falseSignature alternative (non supporté avec les arguments nommés) :
$token
): string|false
strtok() coupe la chaîne string
en segments, chaque segment étant délimité par token
.
Par exemple, si vous avez une chaîne telle que
"Voici un bon exemple"
, vous pouvez en extraire les
différents mots en utilisant l'espace comme token
.
Notez que seul le premier appel à strtok() utilise
l'argument string
.
Tous les appels ultérieurs à strtok() nécessitent uniquement
le token
à utiliser, car elle sait où elle se situe
dans la chaîne courante.
Pour recommencer ou découper une nouvelle chaîne vous pouvez simplement
appeler strtok() avec le paramètre string
de nouveau pour l'initialiser. Il est à noter qu'il est possible de mettre
plusieurs tokens dans le paramètre token
.
La chaîne string
sera découpée dès que l'un des
caractères de l'argument token
est trouvé.
Note:
Cette fonction ce comporte de manière légèrement différente de ce qu'on peut s'attendre étant familier avec explode(). Premièrement, une séquence de deux ou plus
token
caractères contigu dans la chaîne analysé est considéré comme un unique délimiteur. De plus, untoken
situé au début ou à la fin de la chaîne est ignoré. Par exemple, si la chaîne";aaa;;bbb;"
est utilisé, les appels successif à strtok() avec";"
en tant quetoken
retournera les chaînes "aaa" et "bbb", et puisfalse
. Par conséquent, la chaîne sera juste séparé en deux éléments, tandis queexplode(";", $string)
retournerait un tableau de 5 éléments.
string
La chaîne à découper en plusieurs chaînes de tailles plus petites (tokens).
token
Le délimiteur utilisé pour découper string
.
Une string coupée, ou false
si plus aucun token n'est disponible.
Exemple #1 Exemple avec strtok()
<?php
$string = "This is\tan example\nstring";
// Utilisez aussi les nouvelles lignes et les tabulations
// comme séparateur de mots
$tok = strtok($string, " \n\t");
while ($tok !== false) {
echo "Word=$tok<br />";
$tok = strtok(" \n\t");
}
?>
Exemple #2 Comportement de strtok() sur une partie vide trouvée
<?php
$first_token = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>
L'exemple ci-dessus va afficher :
string(9) "something" bool(false)
Exemple #3 La différence entre strtok() et explode()
<?php
$string = ";aaa;;bbb;";
$parts = [];
$tok = strtok($string, ";");
while ($tok !== false) {
$parts[] = $tok;
$tok = strtok(";");
}
echo json_encode($parts),"\n";
$parts = explode(";", $string);
echo json_encode($parts),"\n";
L'exemple ci-dessus va afficher :
["aaa","bbb"] ["","aaa","","bbb",""]
Cette fonction peut retourner false
, mais elle peut aussi retourner une valeur équivalent à false
.
Veuillez lire la section sur les booléens pour plus d'informations.
Utilisez l'opérateur ===
pour tester la valeur de retour exacte de cette fonction.