(PHP 4, PHP 5, PHP 7, PHP 8)
strtok — Divide una cadena en segmentos
Firma alternativa (no soportada con argumentos nombrados):
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
tokencontiguos en la cadena analizada se considera como un único delimitador. Además, untokensituado 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";"comotokendevolverán las cadenas "aaa" y "bbb", y luegofalse. Por lo tanto, la cadena se dividirá simplemente en dos elementos, mientras queexplode(";", $string)devolvería un array de 5 elementos.
stringLa cadena a dividir en varias cadenas de menor tamaño (tokens).
token
El delimitador utilizado para dividir string.
| Versión | Descripción |
|---|---|
| 8.3.0 |
Ahora emite un E_WARNING cuando el token no es proporcionado.
|
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 ejemplo anterior mostrará :
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 ejemplo anterior mostrará :
["aaa","bbb"] ["","aaa","","bbb",""]
Esta función puede retornar false, pero también puede retornar un valor equivalente a false.
Por favor, lea la sección sobre los booleanos para más información.
Utilice el operador ===
para probar el valor de retorno exacto de esta función.