public function getTmpDir()
    {
        $tmpdir = array();
        foreach (array($_ENV, $_SERVER) as $tab) {
            foreach (array('TMPDIR', 'TEMP', 'TMP', 'windir', 'SystemRoot') as $key) {
                if (isset($tab[$key]) && is_string($tab[$key])) {
                    if (($key == 'windir') or ($key == 'SystemRoot')) {
                        $dir = realpath($tab[$key] . '\\temp');
                    } else {
                        $dir = realpath($tab[$key]);
                    }
                    if ($this->_isGoodTmpDir($dir)) {
                        return $dir;
                    }
                }
            }
        }
        $upload = ini_get('upload_tmp_dir');
        if ($upload) {
            $dir = realpath($upload);
            if ($this->_isGoodTmpDir($dir)) {
                return $dir;
            }
        }
        if (function_exists('sys_get_temp_dir')) {
            $dir = sys_get_temp_dir();
            if ($this->_isGoodTmpDir($dir)) {
                return $dir;
            }
        }
        // Attemp to detect by creating a temporary file
        $tempFile = tempnam(md5(uniqid(rand(), TRUE)), '');
        if ($tempFile) {
            $dir = realpath(dirname($tempFile));
            unlink($tempFile);
            if ($this->_isGoodTmpDir($dir)) {
                return $dir;
            }
        }
        if ($this->_isGoodTmpDir('/tmp')) {
            return '/tmp';
        }
        if ($this->_isGoodTmpDir('\\temp')) {
            return '\\temp';
        }
        Zend_Cache::throwException('Could not determine temp directory, please specify a cache_dir manually');
    }
public function getTmpDir()
    {
        $tmpdir = array();
        foreach (array($_ENV, $_SERVER) as $tab) {
            foreach (array('TMPDIR', 'TEMP', 'TMP', 'windir', 'SystemRoot') as $key) {
                if (isset($tab[$key]) && is_string($tab[$key])) {
                    if (($key == 'windir') or ($key == 'SystemRoot')) {
                        $dir = realpath($tab[$key] . '\\temp');
                    } else {
                        $dir = realpath($tab[$key]);
                    }
                    if ($this->_isGoodTmpDir($dir)) {
                        return $dir;
                    }
                }
            }
        }
        $upload = ini_get('upload_tmp_dir');
        if ($upload) {
            $dir = realpath($upload);
            if ($this->_isGoodTmpDir($dir)) {
                return $dir;
            }
        }
        if (function_exists('sys_get_temp_dir')) {
            $dir = sys_get_temp_dir();
            if ($this->_isGoodTmpDir($dir)) {
                return $dir;
            }
        }
        // Attemp to detect by creating a temporary file
        $tempFile = tempnam(md5(uniqid(rand(), TRUE)), '');
        if ($tempFile) {
            $dir = realpath(dirname($tempFile));
            unlink($tempFile);
            if ($this->_isGoodTmpDir($dir)) {
                return $dir;
            }
        }
        if ($this->_isGoodTmpDir('/tmp')) {
            return '/tmp';
        }
        if ($this->_isGoodTmpDir('\\temp')) {
            return '\\temp';
        }
        Zend_Cache::throwException('Could not determine temp directory, please specify a cache_dir manually');
    }
public function getTmpDir ( ) { $ tmpdir = array ( ) ; foreach ( array ( $ _ENV , $ _SERVER ) as $ tab ) { foreach ( array ( 'TMPDIR' , 'TEMP' , 'TMP' , 'windir' , 'SystemRoot' ) as $ key ) { if ( isset ( $ tab [ $ key ] ) && is_string ( $ tab [ $ key ] ) ) { if ( ( $ key == 'windir' ) or ( $ key == 'SystemRoot' ) ) { $ dir = realpath ( $ tab [ $ key ] . '\\temp' ) ; } else { $ dir = realpath ( $ tab [ $ key ] ) ; } if ( $ this -> _isGoodTmpDir ( $ dir ) ) { return $ dir ; } } } } $ upload = ini_get ( 'upload_tmp_dir' ) ; if ( $ upload ) { $ dir = realpath ( $ upload ) ; if ( $ this -> _isGoodTmpDir ( $ dir ) ) { return $ dir ; } } if ( function_exists ( 'sys_get_temp_dir' ) ) { $ dir = sys_get_temp_dir ( ) ; if ( $ this -> _isGoodTmpDir ( $ dir ) ) { return $ dir ; } } // Attemp to detect by creating a temporary file $ tempFile = tempnam ( md5 ( uniqid ( rand ( ) , TRUE ) ) , '' ) ; if ( $ tempFile ) { $ dir = realpath ( dirname ( $ tempFile ) ) ; unlink ( $ tempFile ) ; if ( $ this -> _isGoodTmpDir ( $ dir ) ) { return $ dir ; } } if ( $ this -> _isGoodTmpDir ( '/tmp' ) ) { return '/tmp' ; } if ( $ this -> _isGoodTmpDir ( '\\temp' ) ) { return '\\temp' ; } Zend_Cache :: throwException ( 'Could not determine temp directory, please specify a cache_dir manually' ) ; }
Determine system TMP directory and detect if we have read access

inspired from Zend_File_Transfer_Adapter_Abstract

@return string
@throws Zend_Cache_Exception if unable to determine directory
Determine system TMP directory and detect if we have read access