tmpfile

関数の概要

PHPの tmpfile 関数は、一時的なファイルを作成し、そのファイルポインタを返します。このファイルは通常のファイルと同様に読み書きが可能で、スクリプトの実行が終了すると自動的に削除されます。これにより、一時的なデータの保存や一時ファイルの管理が簡単に行えます。

パラメータの説明

  • なし
    この関数はパラメータを取らず、呼び出すだけで一時ファイルを作成します。

戻り値

成功すると、一時ファイルのストリームリソースを返します。失敗した場合は false を返します。返されたリソースを使ってファイル操作が可能です。

使用例

基本的な使い方

<?php
$fp = tmpfile();
if ($fp === false) {
    echo "一時ファイルの作成に失敗しました。";
    exit;
}
// 一時ファイルに書き込み
fwrite($fp, "こんにちは、tmpfile!n");

// ファイルポインタを先頭に戻す
fseek($fp, 0);

// 内容を読み込み表示
echo fread($fp, 100);

// ファイルはスクリプト終了時に自動で削除される
?>

この例では、一時ファイルを作成し、文字列を書き込み、再度読み込んで画面に表示しています。

一時ファイルのメタ情報を取得する

<?php
$fp = tmpfile();
fwrite($fp, "テストデータ");

// ファイル名を取得(環境によって取得方法が異なります)
$meta = stream_get_meta_data($fp);
$tmpFilename = $meta['uri'];
echo "一時ファイルのパス: " . $tmpFilename;
?>

stream_get_meta_data を使い、一時ファイルの実際のパスを取得できます。デバッグや外部アプリケーションとの連携に役立ちます。

一時ファイルにCSVデータを書き込む

<?php
$fp = tmpfile();
$data = [
    ['名前', '年齢', '職業'],
    ['田中', 30, 'エンジニア'],
    ['鈴木', 25, 'デザイナー'],
];

foreach ($data as $row) {
    fputcsv($fp, $row);
}

fseek($fp, 0);

// CSV内容を読み込んで表示
while (($line = fgetcsv($fp)) !== false) {
    echo implode(' | ', $line) . "<br>";
}
?>

一時ファイルを使ってCSV形式のデータを書き込み、読み込む処理の例です。ファイルの手動管理が不要なため便利です。

関連する関数

  • fopen – ファイルを開く
  • fwrite – ファイルに書き込む
  • fread – ファイルから読み込む
  • fclose – ファイルを閉じる
  • tmpnam – 一時ファイルの名前を生成する
  • stream_get_meta_data – ストリームのメタ情報を取得する

まとめ

tmpfile 関数は、PHPで安全かつ簡単に一時ファイルを作成したい場合に非常に便利です。ファイルの自動削除や簡単なファイル操作が行え、メモリ使用量を抑えながら一時的なデータ保存が可能です。初心者にも使いやすく、実務でも一時ファイル管理に役立つ基本的な関数の1つです。