# strtok

(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

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 se 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 contigus dans la chaîne analysée est considérée 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ée, les appels successifs à 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ée 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.

### Historique

Version | Description
--- | ---
8.3.0 | Émet désormais un `E_WARNING` lorsque le `token` n'est pas fourni.

### 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}\n";
$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