tempnam

関数の概要

PHPの tempnam 関数は、一時的に使用するための安全な一時ファイル名を生成します。この関数は、一時ファイルを作成する前にユニークなファイル名を確保したい場合に役立ちます。通常、テンポラリディレクトリ内にファイル名を作るため、システムの一時ディレクトリや指定したディレクトリをベースにします。

パラメータの説明

  • string $dir
    一時ファイルが生成されるディレクトリのパスを指定します。ディレクトリが存在し、書き込み可能である必要があります。
  • string $prefix
    生成されるファイル名の先頭に付ける文字列を指定します。ファイル名の識別がしやすくなります。

戻り値

成功すると、一時ファイルのファイル名(フルパス)を文字列で返します。失敗すると false を返します。

使用例

基本的な使い方

<?php
$tempFile = tempnam(sys_get_temp_dir(), 'tmp_');
echo "生成された一時ファイル名: " . $tempFile;
?>

この例では、システムの一時ディレクトリに tmp_ で始まるユニークなファイル名を生成しています。

特定のディレクトリに一時ファイル名を作成

<?php
$dir = '/var/www/html/temp';
$tempFile = tempnam($dir, 'myapp_');
if ($tempFile !== false) {
    echo "一時ファイル名: " . $tempFile;
} else {
    echo "ファイル名の生成に失敗しました。";
}
?>

指定したディレクトリに一時ファイル名を作成します。ディレクトリの書き込み権限が必要です。

生成した一時ファイルにデータを書き込む

<?php
$tempFile = tempnam(sys_get_temp_dir(), 'data_');
if ($tempFile !== false) {
    file_put_contents($tempFile, "一時ファイルへの書き込みテスト");
    echo "データを書き込みました: " . $tempFile;
} else {
    echo "一時ファイルの作成に失敗しました。";
}
?>

生成した一時ファイル名を使って、ファイルにデータを書き込むこともできます。

関連する関数

  • tmpfile() – 一時的なファイルを作成し、そのファイルハンドルを返す
  • sys_get_temp_dir() – システムの一時ファイル用ディレクトリのパスを取得する
  • unlink() – ファイルを削除する

まとめ

tempnam は、一時ファイルの名前を安全に生成するPHP関数です。ファイルを実際に作成せずにユニークなファイル名を先取りできるため、ファイル操作の際に競合を防ぐのに便利です。用途によっては、作成したファイル名を使ってファイル操作を行い、作業後は必ず削除することをおすすめします。実務で一時的なデータ管理を行う際、安心して利用できる関数です。