PHPのお勉強!

PHP TOP

SplFileObject::fscanf

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::fscanfフォーマットに従ってファイルからの入力をパースする

説明

public SplFileObject::fscanf(string $format, mixed &...$vars): array|int|null

ファイルから 1 行読み込み、format に従って解釈します。

format 文字列のホワイトスペースはファイルからの行のホワイトスペースとマッチします。このことが意味するのはフォーマット文字列のタブ (\t) でさえも入力ストリームの 1 つのスペース文字とマッチしてしまうということです。

パラメータ

format

string を解釈するフォーマット。 sprintf() のドキュメントにある説明と比べて、以下の違いがあります。

  • ロケールに対応していません。
  • FgG および 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

参考

  • fscanf() - フォーマットに基づきファイルからの入力を処理する
  • sscanf() - フォーマット文字列に基づき入力を処理する
  • printf() - フォーマット済みの文字列を出力する
  • sprintf() - フォーマットされた文字列を返す

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top