(PHP 4, PHP 5, PHP 7)
strtok — Tokeniza string
$str
, string $token
) : string$token
) : string
strtok() divide un string (str
)
en strings más pequeños (tokens), con cada token delimitado por cualquier
caracter de token
.
Es decir, si se tiene un string como "Este es un string de ejemplo", se
puede tokenizar en sus palabras individuales utilizando el
caracter de espacio como el token.
Nótese que sólo la primera llamada a strtok utiliza el argumento string. Cada llamada subsecuente a strtok sólo necesita el token a utilizar, ya que realiza un seguimiento del lugar en que se encuentra en el string actual. Para volver a empezar, o para dividir una cadena nueva, simplemente se llama a strtok de nuevo con el argumento string para inicializarlo. Tener en cuenta que se pueden poner tokens múltiples como parámetro. El string será tokenizado cuando cualquiera de los caracteres en el argumento sea encontrado.
str
El string a ser dividido en strings más pequeños (tokens).
token
El delimitador usado cuando se divide str
.
Un token de string.
Ejemplo #1 Ejemplo de strtok()
<?php
$string = "This is\tan example\nstring";
/* Utiliza tabulador y nueva línea como caracteres de tokenización, así */
$tok = strtok($string, " \n\t");
while ($tok !== false) {
echo "Word=$tok<br />";
$tok = strtok(" \n\t");
}
?>
El comportamiento cuando se encuentra una parte vacía, cambió con PHP 4.1.0. El comportamiento anterior devolvía una cadena vacía, mientras que el comportamiento nuevo y correcto simplemente se salta esa parte del string:
Ejemplo #2 Comportamiento anterior de strtok()
<?php
$first_token = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>
El resultado del ejemplo sería:
string(0) "" string(9) "something"
Ejemplo #3 Comportamiento nuevo de strtok()
<?php
$first_token = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>
El resultado del ejemplo sería:
string(9) "something" bool(false)
Esta función puede
devolver el valor booleano FALSE
, pero también puede devolver un valor no booleano que se
evalúa como FALSE
. Por favor lea la sección sobre Booleanos para más
información. Use el operador
=== para comprobar el valor devuelto por esta
función.