fscanf

(PHP 4 >= 4.0.1, PHP 5)

fscanf -- フォーマットに基づきファイルからの入力を処理する

説明

mixed fscanf ( resource handle, string format [, string var1])

関数fscanf()sscanf() に 似ていますが、handleが指すファイルから入力 を取得し、指定したフォーマット formatに基 づき解釈を行います。この関数のパラメータが二つだけの場合、処理さ れた値は配列として返されます。他方、オプションのパラメータが指定 された場合、この関数は、代入された値の数を返します。オプション引 数は参照渡しとする必要があります。

フォーマット文字列におけるあらゆる空白は 入力ストリームのあらゆる空白にマッチします。 これはつまりフォーマット文字列の\t(タブ)すらも 入力ストリームの空白1個にマッチしてしまうことを意味します。

例 1. fscanf()の例

$fp = fopen ("users.txt","r");
while ($userinfo = fscanf ($fp,"%s\t%s\t%s\n")) {
    list ($name, $profession, $countrycode) = $userinfo;
    //... 値を用いた処理
}
fclose($fp);

例 2. users.txt

javier  argonaut    pe
hiroshi sculptor    jp
robert  slacker us
luigi   florist it

注意: PHP 4.3.0未満では、ファイルから読み込む文字の最大数は512 (または最初に\nが現れるまで)でした。 PHP 4.3.0以降では任意の長い行を読みスキャンすることができます。

fread(), fgets(), fgetss(), sscanf(), printf(), sprintf() も参照下さい。