SplFileObject::fscanf
フォーマットに従ってファイルからの入力をパースする
説明
public arrayintnull SplFileObject::fscanf(string $format
, mixed &...$vars
)
format
文字列のホワイトスペースはファイルからの行のホワイトスペースとマッチします。このことが意味するのはフォーマット文字列のタブ (\t
) でさえも入力ストリームの 1 つのスペース文字とマッチしてしまうということです。
パラメータ
-
format
-
string
を解釈するフォーマット。
sprintf のドキュメントにある説明と比べて、以下の違いがあります。
-
ロケールに対応していません。
-
F
、g
、G
および
b
はサポートしていません。
-
D
は十進数値を表します。
-
i
は基数検出つきの整数値を表します。
-
n
は処理する文字数を表します。
-
s
は、空白文字を読み取ると停止することを示します。
-
argnum$
の代わりに
*
を指定すると、
この変換仕様に従った値の代入を抑制します。
-
vars
-
オプションの割り当て値。
戻り値
このメソッドに渡される引数がひとつしかない場合、処理される値は配列として返されます。そうでなければ、オプションパラメータが渡される場合、メソッドは割り当て値の個数を返します。オプションパラメータは参照渡しでなければなりません。
例
例1 SplFileObject::fscanf の例
<?php
$file = new SplFileObject("misc.txt");
while ($userinfo = $file->fscanf("%s %s %s")) {
list ($name, $profession, $countrycode) = $userinfo;
// $name $profession $countrycode で何かを行う
}
?>
javier argonaut pe
hiroshi sculptor jp
robert slacker us
luigi florist it
参考
- fscanf
- sscanf
- printf
- sprintf