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

作成日: 更新日:

tmpfile関数は一時ファイルを作成する関数です。

この関数は、PHPスクリプトの実行中に一時的にデータを保存する必要がある場合に利用されます。具体的には、システムが管理する一時ファイルディレクトリ内に新しいファイルを生成し、そのファイルへの読み書きが可能なファイルポインタ(ハンドル)を返します。

tmpfile関数の大きな利点は、生成された一時ファイルが自動的に管理される点です。返されたファイルポインタが閉じられる(fclose()関数などでクローズされる)か、またはPHPスクリプトの実行が終了した際に、その一時ファイルはシステムによって自動的に削除されます。これにより、開発者は明示的にファイルを削除する手間を省き、不要なファイルが残存する心配がありません。

また、この関数によって作成されるファイルは、メモリ上ではなくディスク上に保存されます。そのため、扱うデータ量が非常に大きい場合でも、PHPスクリプトのメモリ制限を気にすることなく、安全かつ効率的にデータを処理することが可能です。

関数は、一時ファイルの作成に成功した場合はそのファイルポインタを返します。失敗した場合はfalseを返しますので、戻り値を確認してエラーハンドリングを行うことが重要です。例えば、大きなCSVファイルを一時的に処理したり、外部サービスへのアップロード前に一時的な中間ファイルを生成したりする際に、この関数が活用されます。

基本的な使い方

構文(syntax)

<?php
$temp = tmpfile();

if ($temp) {
    fwrite($temp, "Write something to the temporary file.");
    fseek($temp, 0);
    echo fread($temp, 1024);
    fclose($temp); // tmpfile() は unlink しないため、fclose() で削除されます。
} else {
    echo "Failed to create temporary file.";
}
?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

resource|false

一時的なファイルリソース、または失敗した場合は false を返します。

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