萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 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 istan examplenstring"; 
$tok = strtok($string, " nt"); #空格,換行,TAB 
while ($tok !== false) { 
echo "$tok<br />"; 
$tok = strtok(" nt"); 

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 />"; 
返回:

de 123 
4 99sad 
99 
5232 
------------- 
示例4:演示用for來遍歷:
$line = "[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