Forum und email

sscanf

(PHP 4 >= 4.0.1, PHP 5)

sscanf — フォーマット文字列に基づき入力を処理する

説明

mixed sscanf ( string $str , string $format [, string $var1 [, mixed &$... ]] )

関数 sscanf() は、printf() の入力版です。sscanf() は、文字列 str を読み込み、これを指定したフォーマット format に基づき解釈します。 このフォーマットは、sprintf()のマニュアルに記述されています。 この関数のパラメータが二つだけの場合、処理された値は配列として返されます。 それ以外の場合は、もしオプションのパラメータが渡されればこの関数は 割り当てられた値の数を返します。オプションのパラメータは 参照渡しにする必要があります。

フォーマット文字列の中のあらゆる空白文字は、入力文字列の中の 空白文字列にマッチします。つまり、フォーマット文字列の中にタブ文字 \t が含まれていても、それは入力中の半角スペースにマッチしてしまうと いうことです。

Example#1 sscanf() の例

<?php
// シリアル番号を得る
list($serial) = sscanf("SN/2350001""SN/%d");
// 続いて製造日を得る
$mandate "January 01 2000";
list(
$month$day$year) = sscanf($mandate"%s %d %d");
echo 
"Item $serial was manufactured on: $year-" substr($month03) . "-$day\n";
?>
オプションのパラメータが指定された場合、この関数は、代入された値の 数を返します。

Example#2 sscanf() - オプションパラメータの使用法

<?php
// author 情報を取得し、DocBook エントリを生成
$auth "24\tLewis Carro0">// author 情報を取得し、DocBook エントリを生成
$auth "24\tLewis Carroll";
$n sscanf($auth"%d\t%s %s", &$id, &$first, &$last);
echo 
"<author id='$id'>
       <firstname>$first</firstname>
       <surname>$last</surname>
&lt;/author&gt;\n"
;
?>

fscanf(), printf(), sprintf() も参照ください。