Home > Article > Backend Development > PHP strtok() function example application_PHP tutorial
Compared with explode(), the strtok() function can control the rhythm. Cut the string as needed. The advantages are:
1. Multiple separators can be defined at one time. When the function is executed, it cuts by a single delimiter instead of the entire delimiter, while explode cuts by the entire delimiter string. For this reason, explode can be cut in Chinese, but strtok cannot and will be garbled.
2. When using while or for with strtok() to traverse, you can change the separator at any time, or use break to terminate cutting at any time.
Example 1: Demonstrate cutting using Chinese+explode
$string = "This is the PHP Forum Forum Section Forum Column Forum H Administrator Forum Member";
$arr = explode("Forum",$string);
foreach($arr as $v)
{
echo $v."
";
}
echo "-------------
";
Return:
This is PHP
Section
Column
Hadmin
Member
-------------
Example 2: Demonstrates changing the cutter. Note that there is no "H" separator in WHILE later. Instead just use spaces.
$string = "This is the PHP Forum Forum Section Forum Column Forum H Administrator Forum Member";
$tok = strtok($string, "H"); //space+H
$n=1;
while ($tok !== false) {
echo "$tok
";
$tok = strtok(" "); //space
//if($n>2)break; //You can jump out at any time.
//$n++;
}
echo "-------------
";
Return:
This is P
P Forum
Forum section
Forum section
Forum H Administrator
Forum Member
-------------
Example 3: Demonstrates multiple delimiters.
$string = "This istan examplestring";
$tok = strtok($string, "nt"); #Space, newline, TAB
while ($tok !== false) {
echo "$tok
";
$tok = strtok(" nt");
}
echo "-------------
";
Return:
This
is
an
example
string
-------------
$string = "abcde 123c4 99sadbc99b5232";
$tok = strtok($string, "bc");
while ($tok !="") {
echo "$tok
";
$tok = strtok("bc");
}
echo "-------------
";
Return:
a
de 123
4 99sad
99
5232
-------------
Example 4: Demonstrates using for to traverse:
$line = "leontatkinsontleon@clearink.com";
for($token = strtok($line,"t");$token!="";$token=strtok("t"))
{
print("token: $token
n");
}
Return:
token: leon
token: atkinson
token: leon@clearink.com