(PHP 4, PHP 5, PHP 7, PHP 8)
strtok — Coupe une chaîne en segments
Description
strtok(string
$string
, string
$token
): string|false
Signature alternative (non supporté avec les arguments nommés) :
strtok(string
$token
): string|false
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, un token
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 que token
retournera
les chaînes "aaa" et "bbb", et puis false
.
Par conséquent, la chaîne sera juste séparé en deux éléments, tandis que
explode(";", $string)
retournerait un tableau de 5 éléments.
Liste de paramètres
-
string
-
La chaîne à découper en plusieurs chaînes de tailles plus petites (tokens).
-
token
-
Le délimiteur utilisé pour découper string
.
Valeurs de retour
Une string coupée, ou false
si plus aucun token n'est disponible.
Exemples
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",""]
Notes
Avertissement
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.
Voir aussi
- explode() - Scinde une chaîne de caractères en segments