This function does not always add trailing slash. This behaviour is inconsistent across systems, so you have keep an eye on it.
sys_get_temp_dir
(PHP 5 >= 5.2.1)
sys_get_temp_dir — Geçici dosyalar için kullanılan dizini döndürür
Açıklama
string sys_get_temp_dir
( void
)
PHP'nin geçici dosyaları sakladığı öntanımlı dizinin tam yolunu döndürür.
Dönen Değerler
Geçici dosyaların saklandığı dizinin tam yolunu döndürür.
Örnekler
Örnek 1 - sys_get_temp_dir() örneği
<?php
// sys_get_temp_dir() kullanarak geçici dosyaların
// tutulduğu dizinde bir geçici dosya oluşturalım
$temp_file = tempnam(sys_get_temp_dir(), 'Tux');
echo $temp_file;
?>
Yukarıdaki örnek şuna benzer bir çıktı üretir:
C:\Windows\Temp\TuxA318.tmp
Anonymous ¶
5 years ago
php at ktools.eu ¶
3 years ago
-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());
?>
bert-jan at bugbyte dot nl ¶
3 years ago
This function does not account for virtualhost-specific modifications to the temp path and/or open_basedir:
<Virtualhost>
php_admin_value open_basedir /home/user
php_admin_value upload_tmp_dir /home/user/tmp
php_admin_value session.save_path /home/user/tmp
</Virtualhost>
Within this config it still returns /tmp
dannel at aaronexodus dot com ¶
3 years ago
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 ¶
4 years ago
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));
}
}
}
?>
