strtok

strtok -- Verdeelt string in tokens

Beschrijving

string strtok ( string arg1, string arg2)

strtok( ) wordt gebruikt om een string ( arg1 ) in kortere strings (tokens ) te verdelen , waarvan elk token gescheiden wordt elk teken uit arg2 . Bijvoorbeeld als je een string hebt als " Dit is een voorbeeld string " zou je deze kunnen verdelen in individuele woorden door de spatie als token te geven .

Voorbeeld 1 . strtok( ) voorbeeld

 
$string

 
=

 
"

 
Dit

 
is\teen

 
voorbeeld\nstring"

 
;

 
/

 
*

 
Gebruik

 
ook

 
tabs

 
en

 
newlines

 
als

 
verdeeltekens

 
*

 
/

 
$tok

 
=

 
strtok

 
($string

 
,

 
"

 
\n\t")

 
;

 
while

 
($tok

 
)

 
{

 
echo

 
quot;Word=$tok

 
lt;br

 
quot;

 
;

 
$tok

 
=

 
strtok

 
(

 
quot

 
;

 
quot

 
;)

 
;

 
}





Merk op dat alleen de eerste aanroep naar strtok het string argument gebruikt . Bij elke volgende aanroep heeft strtok alleen het token nodig , omdat het bijhoudt waar men gebleven is in de string . Om opnieuw te beginnen of om een nieuwe string te verdelen in tokens roep je strtok simpelweg aan met het string argument om te initialiseren . Ja kan overigens meerdere tokens in de token parameter megeven . De string zal verdeeld worden wanneer ook maar 1 karakter in het argument gevonden is .

Het resultaat als een leeg gedeelte werd gevonden is veranderd in PHP 4.1.0 . Het oude gedrag was dat dan een lege string terug werd gegeven , maar het nieuwe , juiste gedrag negeert gewoon dat lege gedeelte .

Voorbeeld 2 . Oude strtok( ) gedrag

 
$first_token

 
=

 
strtok(

 
'

 
/

 
iets'

 
,

 
'

 
/

 
')

 
;

 
$second_token

 
=

 
strtok('

 
/

 
')

 
;

 
var_dump

 
($first_token

 
,

 
$second_token)

 
;

 
/

 
*

 
Output

 
:

 
string(0

 
)

 
"

 
"

 
string(4

 
)

 
"iets

 
"

 
*

 
/



Voorbeeld 3 . Nieuwe strtok( ) gedrag

 
$first_token

 
=

 
strtok(

 
'

 
/

 
iets'

 
,

 
'

 
/

 
')

 
;

 
$second_token

 
=

 
strtok('

 
/

 
')

 
;

 
var_dump

 
($first_token

 
,

 
$second_token)

 
;

 
/

 
*

 
Output

 
:

 
string(4

 
)

 
"iets

 
"

 
bool(false

 
)

 
*

 
/





Wees trouwens voorzichtig met gevallen wanneer je tokens gelijk zijn aan " 0 " . In conditionele expressies zal dit naar FALSE evalueren .

Zie ook split( ) en explode( ) .