相对于explode()来说strtok()函数可以控制节奏按需切割字串其优点是
可以一次定义多个分隔符函数在执行时是按单个分隔符来切割而不是按整个分隔符而explode则是按整个分隔串来切割的正因此explode可以用中文切割而strtok则不行会乱码
在使用while或for配合strtok()遍历时可以随时更换分隔符也可以随时用break跳出终止切割
示例演示用中文+explode来切割
$string="这是PHP论坛论坛版块论坛栏目论坛H管理员论坛会员";
$arr=explode("论坛"$string);
foreach($arras$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="Thisistanexamplenstring";
$tok=strtok($string"nt");#空格换行TAB
while($tok!==false){
echo"$tok<br/>";
$tok=strtok("nt");
}
echo"<br/>";
返回
This
is
an
example
string
$string="abcdecsadbcb";
$tok=strtok($string"bc");
while($tok!=""){
echo"$tok<br/>";
$tok=strtok("bc");
}
echo"<br/>";
返回
a
de
sad
示例演示用for来遍历
$line="leontatkinsontleon@clearinkcom";
for($token=strtok($line"t");$token!="";$token=strtok("t"))
{
print("token:$token<BR>n");
}
返回
token:leon
token:atkinson
token:leon@clearinkcom