(PHP 5 >= 5.1.0, PHP 7, PHP 8)
SplFileObject::fscanf — フォーマットに従ってファイルからの入力をパースする
ファイルから 1 行読み込み、format
に従って解釈します。
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 で何かを行う
}
?>
users.txt の内容
javier argonaut pe hiroshi sculptor jp robert slacker us luigi florist it