tempnam: 一意なファイル名を生成する (ファイルシステム 関数) - PHPプロ!マニュアル

PHPマニュアル

tempnam: 一意なファイル名を生成する

tempnam

(PHP 4, PHP 5)

tempnam一意なファイル名を生成する

説明

string tempnam ( string $dir , string $prefix )

一意なテンポラリファイル名を、パーミッションを 0600 に設定し、 指定したディレクトリに作成します。 指定したディレクトリが存在しない場合、tempnam() はシステムのテンポラリディレクトリにあるファイル名を生成し、 その名前を返します。

パラメータ

dir

テンポラリファイルを作成したいディレクトリ。

prefix

作成されるテンポラリファイルのプレフィックス。

注意: Windows では、プレフィックスの最初の 3 文字のみを使用します。

返り値

新しいテンポラリファイル名を返し、失敗した場合には FALSE を返します。

変更履歴

バージョン 説明
4.0.6 PHP 4.0.6 より前では、関数 tempnam() の動作はシステムに依存していました。Windows において TMP 環境変数は dir パラメータを上書きします。Linux においては、 TMPDIR 環境変数が優先されます。一方 SVR4 においては、 指定したディレクトリが存在する場合は、常に dir パラメータを使用します。疑問がある場合は、tempnam(3) に関するシステムドキュメントを参照ください。
4.0.3 この関数の動作は 4.0.3 で変更されました。文字列が生成された時間の間や スクリプトがファイルの作成にとりかかる前にファイルシステムに現れ る可能性がある場合のファイルとの競合を回避するためにもテンポラリ ファイルは作成されます。このファイルは自動的に削除されないため、 不要となった場合にはこのファイルを削除する必要があることに注意してください。

例1 tempnam() の例

<?php
$tmpfname 
tempnam("/tmp""FOO");

$handle fopen($tmpfname"w");
fwrite($handle"writing to tempfile");
fclose($handle);

// ここで何か行う

unlink($tmpfname);
?>

注意

注意: PHP が指定されたパラメータ dir にファイルを生成することができない場合、 システム標準のフォールバックが実行されます。 NTFS では、指定した dir に 65534 を超える数のファイルが存在する場合にも同じことが起こります。

参考

  • tmpfile() - テンポラリファイルを作成する
  • sys_get_temp_dir() - 一時ファイル用に使用されるディレクトリのパスを返す
  • unlink() - ファイルを削除する


PHPマニュアル



Pick Up Q&A

Q
セッションがいいのか、それともデータベースがいいのか教えて下さい。
 このエントリーをはてなブックマークに追加 
A
>ボタンをクリックしたら選んだ商品情報を持っておきたいと思っています。 そのくらいのことならセッションもしくはCookie(期限短め:場合によってはブラウザ閉じるまで)でいいんじゃないですかね。 #わ...

>>続きを読む

一つの目安として、ECサイトの購入情報など絶対に消えてはいけないものはDBに、カートなどの一時的に使用する情報や、ユーザに任意のタイミングで消去されても構わないものはセッションにと使い分けるといいでしょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)