diff --git a/core/util.inc.php b/core/util.inc.php index 34aa782a..c83bb3db 100644 --- a/core/util.inc.php +++ b/core/util.inc.php @@ -317,6 +317,39 @@ function array_contains($array, $target) { return false; } +# (PHP 5 >= 5.2.1) +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; + } + } + } +} + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\ * Event API *