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

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

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

作成日: 更新日:

基本的な使い方

fscanfメソッドは、PHP 8で提供されるSplTempFileObjectクラスに属し、一時ファイルから書式付きのデータを読み込む機能を提供するメソッドです。

このメソッドは、SplTempFileObjectが表す一時ファイルの内容を、指定された書式文字列(フォーマット文字列)に基づいて解析し、読み取ります。書式文字列には、%sで文字列、%dで整数、%fで浮動小数点数など、読み込むデータの型を示す変換指定子を含めることができます。

書式文字列の後に引数を追加することで、ファイルから読み込んだ値を、それらの引数で指定された変数に格納できます。これらの変数は参照渡しで渡す必要があります。たとえば、一時ファイルに「123,apple」のようなカンマ区切りのデータがある場合、「%d,%s」という書式を指定することで、数値と文字列をそれぞれ適切な型の変数に読み込むことが可能です。

fscanfメソッドは、正常に読み込んだフィールドの数を返します。ファイルの終端に達したり、読み取りエラーが発生した場合には、falseまたはnullを返します。

システムエンジニアを目指す初心者の方にとって、このメソッドは、一時的なファイルから特定のパターンに沿ったデータを効率的に抽出し、プログラム内で利用したい場合に非常に有効です。SplTempFileObjectを用いることで、メモリ上またはシステムの一時ディレクトリに作成されるファイルからのデータ解析を、柔軟かつ簡単に行うことができます。

構文(syntax)

1<?php
2$fileObject = new SplTempFileObject(); // SplTempFileObject のインスタンス
3$fileObject->rewind(); // ファイルポインタを先頭に移動 (読み込み準備)
4
5$format = "%d %s"; // 読み込むデータのフォーマットを指定
6$result = $fileObject->fscanf($format, $integerVariable, $stringVariable);
7?>

引数(parameters)

string $format, mixed ...$vars

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

戻り値(return)

array|int|false

書式指定された文字列からデータを読み込み、配列または読み込んだフィールド数を返します。エラーが発生した場合は false を返します。

関連コンテンツ