Manual do PHP
Anterior |  | Próxima

# strtok

(PHP 3, PHP 4, PHP 5)

strtok -- Tokeniza uma string

## Descrição

string strtok ( string arg1, string arg2 )

strtok() divide uma string (`arg1`) em strings menores (tokens), com cada token sendo delimitado por qualquer caractere de `arg2`. Quer dizer que, se você tem uma string como "Esta é uma string de exemplo" você poderia "tokenizá-la" em suas palavras individuais usando o caractere de espaço como delimitador do token.

Exemplo 1. strtok() exemplo
`<?php $string = "This is\tan example\nstring"; /* Use tab e newline como caractere delimitador, que funciona bem */ $tok = strtok($string," \n\t"); while ($tok) { echo "Word=$tok<br>"; $tok = strtok(" \n\t"); } ?>`

Note que só a primeira chamada a strtok usa o argumento string. Cada chamada subseqüente a strtok só precisa do delimitador a ser usado, já que ele mantém o caminho de onde ele está na string atual. Para iniciar novamente, ou tokenizar uma nova string você simplesmente chama strtok com o argumento de string novamente para inicializá-la. Veja que você pode por múltiplos delimitadores como parâmetro. A string será tokenizada quando um dos caracteres no argumento são encontrados.

O comportamento quando uma parte vazia foi encontrada mudou com o PHP 4.1.0. O antigo comportamento retornava uma string vazia, enquanto a nova, a correta, simplesmente pula a parte da string:

Exemplo 2. Comportamento antigo de strtok()
`<?php $first_token = strtok('/something', '/'); $second_token = strtok('/'); var_dump ($first_token, $second_token); /* Output: string(0) "" string(9) "something" */ ?>`

Exemplo 3. Comportamento Novo strtok()
`<?php $first_token = strtok('/something', '/'); $second_token = strtok('/'); var_dump ($first_token, $second_token); /* Output: string(9) "something" bool(false) */ ?>`

Também tome cuidado para que seus tokens não sejam iguais a "0". Isto avalia como `FALSE` em expressões condicionais.

Veja também split() e explode().

Anterior | Principal | Próxima
strstr | Acima | strtolower