strtok

(PHP 3, PHP 4, PHP 5)

strtok -- 文字列をトークンに分割する

説明

string strtok ( string str, string token )

strtok() は文字列 (str) を 何らかの文字 token によって区切られている小さな文字列 (トークン) に分割するために使用されます。 "This is an example string" のような文字列がある場合、 空白文字をトークンとして個々の単語にこの文字列を分割することがで きます。

例 1. strtok()の例

<?php
$string
= "This is\tan example\nstring";
/* Use tab and newline as tokenizing characters as well  */
$tok = strtok($string, " \n\t");

while (
$tok !== false) {
    echo
"Word=$tok<br />";
    
$tok = strtok(" \n\t");
}
?>

strtok は最初のコールの時のみ string 引数を使用することに注意してください。 strtok は、文字列のどこにいるのかの情報を保持しているため、 2回目以降のコールではトークンのみを必要とします。 最初からやりなおす場合や新しい文字列をトークンに分割する場合、 初期化するために再度string引数を指定してstrtokをコールします。 文字列は、引数の文字のどれかが見つかったはトークンに分割されます。

空の部分が見つかった場合の動作はPHP 4.1.0で変更されました。古い動 作は、空の文字列を返しますが、新しい、正しい動作は、文字列のその 部分を単に飛ばします。

例 2. 古いstrtok()の動作

<?php
$first_token  
= strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>

出力:

string(0) ""
    string(9) "something"

例 3. 新しいstrtok()の動作

<?php
$first_token  
= strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>

出力:

string(9) "something"
    bool(false)

警告

この関数は論理値 FALSE を返す可能性がありますが、FALSE として評価される 0 や "" といった値を返す可能性もあります。 詳細については 論理値の セクションを参照してください。この関数の返り値を調べるには ===演算子 を 使用してください。

split(), explode() も参照ください。