Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】SplFileObject::fscanf()メソッドの使い方

fscanfメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

fscanfメソッドは、SplFileObjectクラスのインスタンスに対して、ファイルから書式化された入力を読み取るメソッドです。このメソッドは、指定されたフォーマット文字列に基づいて、ファイルポインタが指す現在の位置からデータを解析し、抽出する機能を提供します。

フォーマット文字列は、C言語のscanf系関数と同様に、%s(文字列)、%d(整数)、%f(浮動小数点数)などの書式指定子を用いて、ファイル内のデータをどのように解釈するかを定義します。例えば、「%d,%s」というフォーマットを指定すると、「整数,文字列」の形式で記述されたデータを効率的に読み取ることができます。

読み取られたデータは配列として返され、フォーマット文字列で指定された各項目に対応する値が含まれます。また、オプションとして、フォーマット文字列の書式指定子に対応する変数を参照渡しで渡すことで、読み取った値をそれらの変数に直接格納することも可能です。

ファイルからの読み取りに失敗した場合や、ファイルの終端に達した場合はfalseが返されます。このメソッドは、CSVファイルや特定の形式で記述された設定ファイル、ログファイルなど、定型化されたテキストファイルから構造化されたデータを効率的かつ安全に抽出する際に非常に有用です。手動で複雑な文字列解析コードを記述する手間を省き、プログラムの記述を簡潔にし、可読性を高めます。

構文(syntax)

1<?php
2
3class SplFileObject
4{
5    public function fscanf(string $format, mixed &...$vars): array|false {}
6}

引数(parameters)

string $format, mixed ...$vars

  • string $format: 読み込むデータのフォーマットを指定する文字列
  • mixed ...$vars: フォーマット文字列に対応する、読み込んだデータを格納するための変数

戻り値(return)

array|false

指定されたフォーマット文字列に基づいてファイルからデータを読み込み、配列として返します。フォーマットに一致しない場合は false を返します。

関連コンテンツ