En programmation PHP, le traitement des chaînes est une fonction fréquemment utilisée. L'une des fonctions de manipulation de chaînes les plus couramment utilisées est strtok(). La fonction strtok() peut diviser une chaîne en plusieurs sous-chaînes en spécifiant le délimiteur. Dans cet article, nous présenterons les connaissances et l'utilisation pertinentes de la fonction strtok().
1. Utilisation de base de la fonction strtok()
La fonction strtok() contient deux paramètres. Le premier paramètre est la chaîne à diviser et le deuxième paramètre est le délimiteur spécifié. La valeur de retour de la fonction est la sous-chaîne actuellement divisée.
Exemple de code :
$str = "Hello, World! How are you today?"; $delimiter = " ,!"; $token = strtok($str, $delimiter); while ($token !== false) { echo "$token<br>"; $token = strtok($delimiter); }
Dans l'exemple ci-dessus, nous utilisons la fonction strtok() pour diviser la chaîne $str en plusieurs sous-chaînes en utilisant des virgules, des espaces et des points d'exclamation comme délimiteurs. Le résultat de l'exécution est le suivant :
Hello World How are you today?
Dans le code ci-dessus, nous utilisons une boucle while. Chaque boucle utilise la fonction strtok() pour obtenir une sous-chaîne $token, puis la générer. La fonction renvoie false pour indiquer qu'il n'y a plus de sous-chaînes.
2. Analyse détaillée de la fonction strtok()
La définition complète de la fonction strtok() est :
string strtok ( string $str, string $delimiter )
Parmi elles :
valeur de retour de la fonction strtok() :
Lors de l'appel de la fonction strtok(), PHP parcourra la chaîne $str de gauche à droite et la coupera selon le délimiteur $delimiter. Chaque fois que la fonction est appelée, une sous-chaîne sera renvoyée et le pointeur interne reculera automatiquement pour pointer vers le début de la sous-chaîne suivante. Cela signifie que chaque fois que la fonction est appelée, une nouvelle sous-chaîne sera renvoyée.
Mais il convient de noter que pour obtenir tous les délimiteurs, vous devez appeler la fonction strtok() à plusieurs reprises jusqu'à ce que false soit renvoyé.
Exemple de code :
$str = "this,is,a,comma,separated,string"; $delimiter = ","; $token = strtok($str, $delimiter); while ($token !== false) { echo "$token<br>"; $token = strtok($delimiter); }
Dans l'exemple ci-dessus, nous utilisons la fonction strtok() pour diviser la chaîne $str en plusieurs sous-chaînes en utilisant des virgules comme séparateur. Le résultat de l'exécution est le suivant :
this is a comma separated string
Dans cet exemple, nous définissons le séparateur sur virgule. Lorsque la fonction strtok() est appelée pour la première fois, elle renvoie la première sous-chaîne « this » dans la chaîne que nous voulons diviser. Ensuite, nous appelons la fonction strtok() à plusieurs reprises, renvoyant une nouvelle sous-chaîne à chaque fois jusqu'à ce que false soit renvoyé.
3. Notes sur la fonction strtok()
Lorsque nous utilisons la fonction strtok() pour diviser une chaîne, la fonction modifiera la chaîne d'origine. Si vous devez utiliser la chaîne d'origine dans des programmes ultérieurs, vous devez d'abord la sauvegarder.
Exemple de code :
$str = "first,second,third"; $delimiter = ","; $original_str = $str; $token = strtok($str, $delimiter); while ($token !== false) { echo "$token<br>"; $token = strtok($delimiter); } echo $original_str;
Il est à noter que le paramètre $delimiter ne peut être qu'un seul caractère, sinon il sera traité comme chaque caractère en attente d'être passé.
Exemple de code :
$str = "one,two,three"; $delimiter = ",e"; $token = strtok($str, $delimiter); while ($token !== false) { echo "$token<br>"; $token = strtok($delimiter); }
L'effet attendu de ce code est de séparer la chaîne par une virgule et la lettre e, mais en fait la fonction n'utilise pas la lettre e comme séparateur, elle traite le caractère "e" comme un wait Separator, c'est-à-dire que deux caractères adjacents doivent être des séparateurs pour une utilisation normale.
Dans la fonction strtok(), le premier paramètre $str spécifie la chaîne à diviser et le deuxième paramètre est le délimiteur spécifié. L'ordre de ces deux paramètres ne peut pas être inversé. Si l’ordre de ces deux paramètres est inversé, une erreur sera signalée.
Exemple de code :
$str = "one,two,three"; $delimiter = ","; // 错误方式 $token = strtok($delimiter, $str); while ($token !== false) { echo "$token<br>"; $token = strtok($delimiter); }
IV. Résumé
Dans la programmation PHP, il existe de nombreux scénarios dans lesquels des opérations sur les chaînes sont utilisées. La fonction strtok() est une fonction de fractionnement de chaîne très pratique qui peut diviser une chaîne en plusieurs sous-chaînes selon le délimiteur spécifié.
Lorsque vous utilisez la fonction strtok(), faites attention au type de valeur de retour de la fonction, à la sauvegarde de la chaîne d'origine, au séparateur ne peut être qu'un seul caractère et à l'impact de l'ordre des paramètres. Une utilisation appropriée de la fonction strtok() peut nous aider à traiter les chaînes plus efficacement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!