explode()と比較して、strtok()関数はリズムを制御できます。必要に応じて紐をカットします。その利点は次のとおりです:
1. 複数のセパレータを一度に定義できます。関数が実行されると、区切り文字全体ではなく 1 つの区切り文字によってカットされますが、エクスプロードは区切り文字文字列全体によってカットされます。このため、explode は中国語でカットできますが、strtok はカットできず、文字化けします。
2. strtok() で while または for を使用してトラバースする場合、いつでも区切り文字を変更したり、break を使用していつでも切断を終了したりできます。
例 1: 中国語 + 爆発を使用した切断のデモンストレーション
$string = "これは、PHP フォーラム フォーラム セクション フォーラム コラム H 管理者フォーラム メンバーです。";
$arr =explode("フォーラム",$string);
foreach($arr as $v)
{
echo $v."
";
}
エコー "-------------
";
戻る:
これはPHPです
セクション
コラム
ハドミン
メンバー
-------------
例 2: カッターの変更を示します。後で WHILE に「H」区切り文字がないことに注意してください。代わりにスペースを使用してください。
$string = "これは、PHP フォーラム フォーラム セクション フォーラム コラム H 管理者フォーラム メンバーです。";
$tok = strtok($string, "H") //スペース+H
;
$n=1;
while ($tok !== false) {
エコー "$tok
";
$tok = strtok(" ") //スペース
;
//if($n>2)break; //いつでも飛び出すことができます。
//$n++
}
エコー "-------------
";
戻る:
Pです
Pフォーラム
フォーラムセクション
フォーラムセクション
フォーラムH管理人
フォーラムメンバー
-------------
例 3: 複数の区切り文字を示します。
$string = "この例の文字列";
$tok = strtok($string, "nt"); #スペース、改行、TAB
while ($tok !== false) {
エコー "$tok
";
$tok = strtok("nt");
}
エコー "-------------
";
戻る:
これ
は
例
文字列
-------------
$string = "abcde 123c4 99sadbc99b5232";
$tok = strtok($string, "bc");
while ($tok !="") {
エコー "$tok
";
$tok = strtok("bc");
}
エコー "-------------
";
戻る:
デ123
4 99悲しい
99
5232
-------------
例 4: for を使用してトラバースする例:
$line = "leontatkinsontleon@clearink.com";
for($token = strtok($line,"t");$token!="";$token=strtok("t"))
{
print("トークン: $token
n");
}
戻る:
トークン: レオン
トークン: アトキンソン
トークン: leon@clearink.com
http://www.bkjia.com/PHPjc/371539.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/371539.html
技術記事
strtok()関数はexplode()と比べてリズムを制御することができます。必要に応じて紐をカットします。利点は次のとおりです。 1. 複数のセパレータを一度に定義できます。関数が実行されるとき、単一の区切り文字に基づいて実行されます...