Forum und email

strtok

(PHP 4, PHP 5)

strtok — Tokeniza uma string

Descrição

string strtok ( string $str , string $token )

strtok() divide uma string (str ) em strings menores (tokens), com cada token sendo delimitado por qualquer caractere de token . 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.

Example#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 !== false) {
    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:

Example#2 Comportamento antigo de strtok()

<?php
$first_token  
strtok('/something''/');
$second_token strtok('/');
var_dump ($first_token$second_token);
?>

Saída:

    string(0) ""
    string(9) "something"

Example#3 Comportamento Novo strtok()

<?php
$first_token  
strtok('/something''/');
$second_token strtok('/');
var_dump ($first_token$second_token);
?>

Saída:

    string(9) "something"
    bool(false)

Aviso

Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função.

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