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));
}
}
}
?>
sys_get_temp_dir
(PHP 5 >= 5.2.1)
sys_get_temp_dir — Returns directory path used for temporary files
Description
string sys_get_temp_dir
( void
)
Returns the path of the directory PHP stores temporary files in by default.
Return Values
Returns the path of the temporary directory.
sys_get_temp_dir
php [spat] hm2k.org
22-Aug-2008 07:20
22-Aug-2008 07:20
radon8472 at hotmail dot com
01-Aug-2008 04:31
01-Aug-2008 04: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 07:08
29-Jan-2008 07: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
22-Nov-2006 09:04
22-Nov-2006 09: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;
}
}
}
}
?>
