Get temporary dictionary in PHP

Inspired by: https://bit.ly/2NaI8oN

If you want to get a temporary dictionary you could use sys_get_temp_dir(). But this doesn’t guarantee that you have write access to this dictionary. So, you can also get the upload_tmp_dir property from the php.ini file.

You can combine this for simplicity in a function:

<?php
    function get_temp():string{
        // Returns a temporary dictionary path.
        // When it can't find one, it returns false.
        if(is_writable(sys_get_temp_dir())){
            return sys_get_temp_dir();
        }elseif(is_writable(ini_get("upload_tmp_dir"))){
             return ini_get("upload_tmp_dir");
        }else{
            return false;
        }
    }
    echo get_temp();
?>

Or the short form:

<?php
    function get_temp():string|bool{
        return is_writable(sys_get_temp_dir())?sys_get_temp_dir():(is_writable(ini_get("upload_tmp_dir"))?ini_get("upload_tmp_dir"):false);
    }
?>
Written on March 3, 2022