ホームページ >バックエンド開発 >PHPチュートリアル >PHPのexplode()関数とstrtok()関数の違い

PHPのexplode()関数とstrtok()関数の違い

黄舟
黄舟オリジナル
2017-11-14 11:37:062566ブラウズ

php strtok()functionexplode()関数はどちらもstringを分割するために使用できますが、explode()と比較して、strtok()関数はリズムを制御できます。この記事では、PHPのexplode()関数とstrtok()関数の違いを詳しく紹介します

explode()と比べて、strtok()関数はリズムを制御することができます。必要に応じて紐をカットします。利点は次のとおりです:

1. 複数の区切り文字を一度に定義できます。関数が実行されると、区切り文字全体ではなく 1 つの区切り文字によってカットされますが、エクスプロードは区切り文字文字列全体によってカットされます。このため、explode は中国語でカットできますが、strtok はカットできず、文字化けします。

2. strtok() で while または for を使用してトラバースする場合、いつでもセパレーターを変更したり、break を使用してカットを終了したりできます。

例 1: 中国語の爆発を使用してカットする例を示します。

$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

要約:

これを勉強することでこれを知る記事 strtok() 関数とexplode() 関数の違いは、仕事の特定の状況に応じて特定の関数の使用を選択できることです。これがあなたの仕事に役立つことを願っています。

関連する推奨事項: php lode() 関数でのexplode() 関数の適用の詳細な説明 定義の詳細な説明

以上がPHPのexplode()関数とstrtok()関数の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。