首頁 >後端開發 >php教程 >php把字串分割成更小的字串(標記)的函數strtok()

php把字串分割成更小的字串(標記)的函數strtok()

黄舟
黄舟原創
2017-11-06 10:34:071731瀏覽

實例

以單字分割字串

在下面的實例中,請注意,我們只在第一次呼叫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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn