downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

version_compare> <set_time_limit
Last updated: Fri, 13 Nov 2009

view this page in

sys_get_temp_dir

(PHP 5 >= 5.2.1)

sys_get_temp_dir一時ファイル用に使用されるディレクトリのパスを返す

説明

string sys_get_temp_dir ( void )

PHP が一時ファイルを保存するデフォルトのディレクトリのパスを返します。

返り値

一時ディレクトリのパスを返します。

例1 sys_get_temp_dir() の例

<?php
// sys_get_temp_dir() を使用して
// 一時ファイルディレクトリにファイルを作成します
$temp_file tempnam(sys_get_temp_dir(), 'Tux');

echo 
$temp_file;
?>

上の例の出力は、 たとえば以下のようになります。

C:\Windows\Temp\TuxA318.tmp

参考

  • tmpfile() - テンポラリファイルを作成する
  • tempnam() - 一意なファイル名を生成する



version_compare> <set_time_limit
Last updated: Fri, 13 Nov 2009
 
add a note add a note User Contributed Notes
sys_get_temp_dir
Anonymous
22-Nov-2009 05:04
How to change this system value in php.ini or .htaccess?
php at ktools.eu
17-Oct-2009 06:29
-better to use the php methode 'getenv()' to access the enviroment vars
-the original 'sys_get_temp_dir()' don't use realpath, than it's better to make 'realpath(sys_get_temp_dir())'

<?php
 
if ( !function_exists('sys_get_temp_dir')) {
  function
sys_get_temp_dir() {
      if(
$temp=getenv('TMP') )        return $temp;
      if(
$temp=getenv('TEMP') )        return $temp;
      if(
$temp=getenv('TMPDIR') )    return $temp;
     
$temp=tempnam(__FILE__,'');
      if (
file_exists($temp)) {
         
unlink($temp);
          return
dirname($temp);
      }
      return
null;
  }
 }

 echo
realpath(sys_get_temp_dir());
?>
dannel at aaronexodus dot com
07-Sep-2009 08:11
There's no need to use a random name for the directory for tempnam.

Since a file and a directory can't share the same name on the filesystem, we can exploit this and simply use the name of the current file. It is guaranteed that the directory won't exist (because it's a file, of course).

Improving on the last post...

<?php
if ( !function_exists('sys_get_temp_dir')) {
  function
sys_get_temp_dir() {
    if (!empty(
$_ENV['TMP'])) { return realpath($_ENV['TMP']); }
    if (!empty(
$_ENV['TMPDIR'])) { return realpath( $_ENV['TMPDIR']); }
    if (!empty(
$_ENV['TEMP'])) { return realpath( $_ENV['TEMP']); }
   
$tempfile=tempnam(__FILE__,'');
    if (
file_exists($tempfile)) {
     
unlink($tempfile);
      return
realpath(dirname($tempfile));
    }
    return
null;
  }
}
?>
php [spat] hm2k.org
22-Aug-2008 11:20
I went ahead and slightly improved the function provided.

<?php
if ( !function_exists('sys_get_temp_dir')) {
  function
sys_get_temp_dir() {
    if (!empty(
$_ENV['TMP'])) { return realpath($_ENV['TMP']); }
    if (!empty(
$_ENV['TMPDIR'])) { return realpath( $_ENV['TMPDIR']); }
    if (!empty(
$_ENV['TEMP'])) { return realpath( $_ENV['TEMP']); }
   
$tempfile=tempnam(uniqid(rand(),TRUE),'');
    if (
file_exists($tempfile)) {
   
unlink($tempfile);
    return
realpath(dirname($tempfile));
    }
  }
}
?>
radon8472 at hotmail dot com
01-Aug-2008 08:31
better use
tempnam(":\n\\/?><","");

To detect path by creating a temporary file.
A random directoryname can exist  (the chance is low, but it can be).
Better is to use signs, like :\n\\/?>< which are not valid, so realy NEVER a directory with this name can exist.
Anonymous
29-Jan-2008 12:08
This function does not always add trailing slash. This behaviour is inconsistent across systems, so you have keep an eye on it.
minghong at gmail dot com
23-Nov-2006 02:04
To add support of sys_get_temp_dir for PHP4/5, use the following code:

<?php
if ( !function_exists('sys_get_temp_dir') )
{
   
// Based on http://www.phpit.net/
    // article/creating-zip-tar-archives-dynamically-php/2/
   
function sys_get_temp_dir()
    {
       
// Try to get from environment variable
       
if ( !empty($_ENV['TMP']) )
        {
            return
realpath( $_ENV['TMP'] );
        }
        else if ( !empty(
$_ENV['TMPDIR']) )
        {
            return
realpath( $_ENV['TMPDIR'] );
        }
        else if ( !empty(
$_ENV['TEMP']) )
        {
            return
realpath( $_ENV['TEMP'] );
        }

       
// Detect by creating a temporary file
       
else
        {
           
// Try to use system's temporary directory
            // as random name shouldn't exist
           
$temp_file = tempnam( md5(uniqid(rand(), TRUE)), '' );
            if (
$temp_file )
            {
               
$temp_dir = realpath( dirname($temp_file) );
               
unlink( $temp_file );
                return
$temp_dir;
            }
            else
            {
                return
FALSE;
            }
        }
    }
}
?>

version_compare> <set_time_limit
Last updated: Fri, 13 Nov 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites