【PHP8.x】finfo_buffer関数の使い方

作成日: 更新日:

finfo_buffer関数は、指定された文字列バッファの内容を解析し、その内容に関する情報を取得する関数です。具体的には、渡された文字列データから、そのデータの種類(例えば、画像、テキスト、実行可能ファイルなど)や、エンコーディング、MIMEタイプといった情報を判別します。

この関数は、ファイルパスではなく、メモリ上のデータに対して直接ファイル情報を取得したい場合に特に有効です。例えば、ネットワーク経由で受信したデータや、データベースから読み込んだデータなど、ファイルとして保存されていないデータに対して、その種類を判別する必要がある場合に利用できます。

関数は、magicデータベースを使用してファイル情報を解析します。magicデータベースは、ファイルの内容のパターンと対応するファイルタイプを記述したデータベースです。finfo_buffer関数は、このデータベースを参照して、入力されたバッファの内容を解析し、最も適切なファイルタイプを特定します。

finfo_buffer関数を使用するには、まずfinfo_open関数を使用してfileinfoリソースを作成する必要があります。そして、そのリソースと解析したい文字列バッファをfinfo_buffer関数に渡します。関数は、解析結果を文字列として返します。解析に失敗した場合は、FALSEを返します。

finfo_buffer関数は、ファイルの内容に基づいてファイルタイプを判別するため、ファイル拡張子に依存しません。そのため、拡張子が誤っているファイルや、拡張子がないファイルに対しても正確なファイルタイプを判別することができます。

基本的な使い方

構文(syntax)

finfo_buffer(
    finfo $finfo,
    string $string,
    int $options = 0
): string|false

引数(parameters)

finfo $finfo, string $string, int $flags = 0, mixed $context = null

  • finfo $finfo: ファイル情報取得のためのfinfoリソース
  • string $string: ファイル情報(mimetype)を取得したい文字列データ
  • int $flags = 0: ファイル情報の取得方法を指定するフラグ(デフォルトは0)
  • mixed $context = null: コンテキストを指定(通常はnull)

戻り値(return)

string|false

指定されたバッファの内容に基づいて、MIMEタイプの文字列を返します。指定されたバッファの内容を識別できなかった場合は、falseを返します。

【PHP8.x】finfo_buffer関数の使い方 | いっしー@Webエンジニア