strtok

(PHP 4, PHP 5, PHP 7, PHP 8)

strtokDivide una cadena en segmentos

Descripción

strtok(string $string, string $token): string|false

Firma alternativa (no soportada con argumentos nombrados):

strtok(string $token): string|false

strtok() divide la cadena string en segmentos, cada segmento está delimitado por token. Por ejemplo, si se tiene una cadena como "Este es un buen ejemplo", se pueden extraer las diferentes palabras utilizando el espacio como token.

Tenga en cuenta que solo la primera llamada a strtok() utiliza el argumento string. Todas las llamadas posteriores a strtok() requieren únicamente el token a utilizar, ya que sabe dónde se encuentra en la cadena actual. Para reiniciar o dividir una nueva cadena, simplemente se puede llamar a strtok() con el parámetro string nuevamente para inicializarlo. Cabe señalar que es posible incluir varios tokens en el parámetro token. La cadena string se dividirá tan pronto como se encuentre uno de los caracteres del argumento token.

Nota:

Esta función se comporta de manera ligeramente diferente a lo que se podría esperar al estar familiarizado con explode(). En primer lugar, una secuencia de dos o más caracteres token contiguos en la cadena analizada se considera como un único delimitador. Además, un token situado al inicio o al final de la cadena es ignorado. Por ejemplo, si la cadena ";aaa;;bbb;" es utilizada, las llamadas sucesivas a strtok() con ";" como token devolverán las cadenas "aaa" y "bbb", y luego false. Por lo tanto, la cadena se dividirá simplemente en dos elementos, mientras que explode(";", $string) devolvería un array de 5 elementos.

Parámetros

string

La cadena a dividir en varias cadenas de menor tamaño (tokens).

token

El delimitador utilizado para dividir string.

Valores devueltos

Una string dividida, o false si no hay más tokens disponibles.

Historial de cambios

Versión Descripción
8.3.0 Ahora emite un E_WARNING cuando el token no es proporcionado.

Ejemplos

Ejemplo #1 Ejemplo con strtok()

<?php
$string
= "This is\tan example\nstring";
// Utilice también las nuevas líneas y las tabulaciones
// como separador de palabras
$tok = strtok($string, " \n\t");

while (
$tok !== false) {
echo
"Word={$tok}\n";
$tok = strtok(" \n\t");
}
?>

Ejemplo #2 Comportamiento de strtok() al encontrar una parte vacía

<?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)

Ejemplo #3 La diferencia entre strtok() y 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";

El resultado del ejemplo sería:

["aaa","bbb"]
["","aaa","","bbb",""]

Notas

Advertencia

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.

Ver también