萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP:strtok()函數的應用

PHP:strtok()函數的應用

相對於explode()來說,strtok()函數可以控制節奏。按需切割字串。其優點是:

1、可以一次定義多個分隔符。函數在執行時,是按單個分隔符來切割,而不是按整個分隔符,而explode則是按整個分隔串來切割的。正因此,explode可以用中文切割,而strtok則不行,會亂碼。

2、在使用while或for配合strtok()遍歷時,可以隨時更換分隔符,也可以隨時用break跳出終止切割。

示例1:演示用中文+explode來切割

$string = "這是PHP論壇 論壇版塊 論壇欄目 論壇H管理員 論壇會員";
$arr = explode("論壇",$string);
foreach($arr as $v)
{
echo $v."<br />";
}
echo "-------------<br />";

返回:

這是PHP

版塊
欄目
H管理員
會員
-------------

示例2:演示更換切割符,注意後面WHILE中不再帶有“H”分隔符。而只是用空格。

$string = "這是PHP論壇 論壇版塊 論壇欄目 論壇H管理員 論壇會員";
$tok = strtok($string, " H"); //空格+H
$n=1;
while ($tok !== false) {
echo "$tok<br />";
$tok = strtok(" "); //空格
//if($n>2)break; //可以隨時跳出。
//$n++;
}
echo "-------------<br />";

返回:

這是P
P 論壇
論壇版塊
論壇欄目
論壇H管理員
論壇會員
-------------

示例3:演示多分隔符。

$string = "This is/tan example/nstring";
$tok = strtok($string, " /n/t"); #空格,換行,TAB
while ($tok !== false) {
echo "$tok<br />";
$tok = strtok(" /n/t");
}
echo "-------------<br />";

返回:

This
is
an
example
string
-------------

$string = "abcde 123c4 99sadbc99b5232";
$tok = strtok($string, "bc");
while ($tok !="") {
echo "$tok<br />";
$tok = strtok("bc");
}
echo "-------------<br />";

返回:

a
de 123
4 99sad
99
5232
-------------

示例4:演示用for來遍歷:

$line = "leon/tatkinson/[email protected]";
for($token = strtok($line,"/t");$token!="";$token=strtok("/t"))
{
print("token: $token<BR>/n");
}

返回:

token: leon
token: atkinson
token: [email protected]
copyright © 萬盛學電腦網 all rights reserved