strtok
En esta página
strtok
Divide una cadena en segmentos
Descripción#
strtok(string $string, string $token): string
```php
Firma alternativa (no soportada con argumentos nombrados):
```php
strtok(string $token): string
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.
[!NOTE] 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 caracterestokencontiguos 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 astrtokcon";"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.
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 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");
}
?>
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)
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",""]
Notas#
[!WARNING] Esta función puede retornar
false, pero también puede retornar un valor equivalente afalse. 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.
Véase también#
explode