function temp_dir()
    {
        $dir = '';
        if (function_exists('sys_get_temp_dir')) {
            $dir = sys_get_temp_dir();
        }
        if (!$dir && $tmp = getenv('TMP')) {
            $dir = $tmp;
        }
        if (!$dir && $tmp = getenv('TEMP')) {
            $dir = $tmp;
        }
        if (!$dir && $tmp = getenv('TMPDIR')) {
            $dir = $tmp;
        }
        if (!$dir) {
            $tmp = tempnam(__FILE__, '');
            if (file_exists($tmp)) {
                unlink($tmp);
                $dir = dirname($tmp);
            }
        }
        if (!$dir) {
            return '';
        }
        $slash = (strtolower(substr(PHP_OS, 0, 3)) === 'win' ? '\\' : '/');
        if (substr($dir, -1) != $slash) {
            $dir = $dir . $slash;
        }

        return $dir;
    }