Descripción
string
strtok ( string cadena, string elemento )
strtok() se usa para dividir una cadena en
elementos más pequeños, en los que cada elemento
está delimitado por cualquier carácter del parámetro
elemento.
Es decir, que si tiene una cadena como "Esta es una cadena
de ejemplo", podrÃa dividirla en palabras individuales utilizando
el espacio como divisor.
Ejemplo 1. Ejemplo de strtok()
<?php $cadena = "Esta es\tuna cadena de\nejemplo"; /* Se emplea el tabulador y la nueva linea como elementos divisores */ $tok = strtok ($cadena," ");
while ($tok !== false) { echo "Palabra=$tok<br />"; $tok = strtok(" \n\t"); } ?>
|
|
Nótese que sólo la primera llamada a strtok utiliza el argumento
cadena. Cada llamada subsiguiente necesita sólo el divisor a
utilizar, puesto que ella guarda la posición actual en la cadena.
Para comenzar de nuevo o para dividir otra cadena, simplemente
llame a strtok con el argumento de cadena y se inicializará.
Nótese que puede poner múltiples divisores como parámetro. La
cadena será dividida cuando alguno de los caracteres del argumento
sea hallado.
El comportamiento de la función cuando encuentra un trozo vacÃo
se modificó en la versión PHP 4.1.0. El anterior comportamiento
devolvÃa una cadena vacÃa y el nuevo (y correcto) comportamiento
consiste en no tener en cuenta esa parte de la cadena:
Ejemplo 2. Anterior comportamietno de strtok()
<?php $primer_token = strtok('/algo', '/'); $segundo_token = strtok('/'); var_dump($primer_token, $segundo_token); ?>
|
Salida:
string(0) ""
string(9) "algo" |
|
Ejemplo 3. Nuevo comportamiento de strtok()
<?php $primer_token = strtok('/algo', '/'); $segundo_token = strtok('/'); var_dump($primer_token, $segundo_token); ?>
|
Salida:
string(9) "algo"
bool(false) |
|
| Aviso |
Esta función
puede devolver FALSE, pero también puede devolver un valor
no-booleano que será evaluado FALSE, como por ejemplo
0 o "". Por favor, lea la sección
Booleans para más
información. Utilice el operador === para
comprobar el valor devuelto por esta
función. |
Vea también split() y
explode().