實例
以單字分割字串:
在下面的實例中,請注意,我們只在第一次呼叫strtok() 函數時使用了string 參數。在首次呼叫後,函數僅需要 split 參數,這是因為它清楚自己在目前字串中所在的位置。如需分割一個新的字串,請再呼叫帶有string 參數的strtok():
<?php $string = "Hello world. Beautiful day today."; $token = strtok($string, " "); while ($token != false) { echo "$token<br>"; $token = strtok(" "); } ?>
定義和用法
strtok() 函數把字串分割成更小的字串(標記)。
語法
strtok(string,split)
參數 | #描述 |
string | 必需。規定要分割的字串。 |
split | 必要。規定一個或多個分割字元。 |
技術細節
#傳回值: | #傳回字串標記。 |
PHP 版本: | 4+ |
#其優點是:
#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\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
以上是php把字串分割成更小的字串(標記)的函數strtok()的詳細內容。更多資訊請關注PHP中文網其他相關文章!