相对于explode()来说strtok()函数可以控制节奏按需切割字串其优点是
可以一次定义多个分隔符函数在执行时是按单个分隔符来切割而不是按整个分隔符而explode则是按整个分隔串来切割的正因此explode可以用中文切割而strtok则不行会乱码
在使用while或for配合strtok()遍历时可以随时更换分隔符也可以随时用break跳出终止切割
示例演示用中文+explode来切割
$string =
这是PHP论坛 论坛版块 论坛栏目 论坛H管理员 论坛会员
;
$arr = explode(
论坛
$string);
foreach($arr as $v)
{
echo $v
<br />
;
}
echo
<br />
;
返回
这是PHP
版块
栏目
H管理员
会员
示例演示更换切割符注意后面WHILE中不再带有H分隔符而只是用空格
$string =
这是PHP论坛 论坛版块 论坛栏目 论坛H管理员 论坛会员
;
$tok = strtok($string
H
); //空格+H
$n=
;
while ($tok !== false) {
echo
$tok<br />
;
$tok = strtok(
); //空格
//if($n>
)break; //可以随时跳出
//$n++;
}
echo
<br />
; 这是P
P 论坛
论坛版块
论坛栏目
论坛H管理员
论坛会员
示例演示多分隔符
$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
c
sadbc
b
;
$tok = strtok($string
bc
);
while ($tok !=
) {
echo
$tok<br />
;
$tok = strtok(
bc
);
}
echo
<br />
; a
de
sad
示例演示用for来遍历
$line =
leon/tatkinson/tleon@clearink
com
;
for($token = strtok($line
/t
);$token!=
;$token=strtok(
/t
))
{
print(
token: $token<BR>/n
);
} token: leon
token: atkinson
token: leon@clearink
com