strtok( string $str, string $token )
と、strtok( string $token )
は、文字列「$str」をトークン(部分文字列)に分割する組み込み関数。
1つ目のトークン取得に、strtok( string $str, string $token )
を使い、2つ目のトークン取得に、strtok( string $token )
を使う。
定義
文字列から1つ目のトークンを取得
strtok( 文字列型 $str, 文字列型 $token );
文字列「$str」の先頭から、区切文字「$token」までの部分文字列を取得する。
パラメータ
- 文字列型 $str
分割したい文字列を指定する。
- 文字列型 $token
区切文字。
区切文字を並べることで、複数の区切文字を指定することもできる。
文字列から2つ目以降のトークンを取得
strtok( 文字列型 $token );
直前に取得したトークンの終わりから、区切文字「$token」までの部分文字列を取得する。
パラメータ
- 文字列型 $token
区切文字。
区切文字を並べることで、複数の区切文字を指定することもできる。
戻り値
トークン(部分文字列)。
構文
文字列から1つ目のトークンを取得
トークン = strtok( 文字列, 区切文字 );
文字列から2つ目以降のトークンを取得
トークン = strtok( 区切文字 );
2つ目以降のトークンを取得するときは、引数に「区切文字」だけを指定する。
サンプル
2つ目以降のトークンを取得するときは、引数に「区切文字」だけを指定する点に注目。
文字列をトークンに分割
<?php
$string = "sampleA,sampleB sampleC sampleD\tsampleE\nsampleF,sampleG";
$tok = strtok( $string, ", \n\t" );
while( $tok ){
$number++;
echo "$number: $tok<br />";
$tok = strtok( ", \n\t" );
}
?>
$string = "sampleA,sampleB sampleC sampleD\tsampleE\nsampleF,sampleG";
$tok = strtok( $string, ", \n\t" );
while( $tok ){
$number++;
echo "$number: $tok<br />";
$tok = strtok( ", \n\t" );
}
?>
↓↓↓出力結果↓↓↓
1: sampleA
2: sampleB
3: sampleC
4: sampleD
5: sampleE
6: sampleF
7: sampleG
2: sampleB
3: sampleC
4: sampleD
5: sampleE
6: sampleF
7: sampleG
URLを、「/」区切りで分割
<?php
$string = "http://alphasis.info/php/built-in-functions/";
$tok = strtok( $string, "/" );
while( $tok ){
$number++;
echo "$number: $tok<br />";
$tok = strtok( "/" );
}
?>
$string = "http://alphasis.info/php/built-in-functions/";
$tok = strtok( $string, "/" );
while( $tok ){
$number++;
echo "$number: $tok<br />";
$tok = strtok( "/" );
}
?>
↓↓↓出力結果↓↓↓
1: http:
2: alphasis.info
3: php
4: built-in-functions
2: alphasis.info
3: php
4: built-in-functions
CSV形式のデータを、カンマ区切りで分割
<?php
$string = "サンプルA,サンプルB,サンプルC";
$tok = strtok( $string, "," );
while( $tok ){
$number++;
echo "$number: $tok<br />";
$tok = strtok( "," );
}
?>
$string = "サンプルA,サンプルB,サンプルC";
$tok = strtok( $string, "," );
while( $tok ){
$number++;
echo "$number: $tok<br />";
$tok = strtok( "," );
}
?>
↓↓↓出力結果↓↓↓
1: サンプルA
2: サンプルB
3: サンプルC
2: サンプルB
3: サンプルC