Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. System.php

function System::mktemp

Creates temporary files or directories. This function will remove the created files when the scripts finish its execution.

Usage: 1) $tempfile = System::mktemp("prefix"); 2) $tempdir = System::mktemp("-d prefix"); 3) $tempfile = System::mktemp(); 4) $tempfile = System::mktemp("-t /var/tmp prefix");

prefix -> The string that will be prepended to the temp name (defaults to "tmp"). -d -> A temporary dir will be created instead of a file. -t -> The target dir where the temporary (file|dir) will be created. If this param is missing by default the env vars TMP on Windows or TMPDIR in Unix will be used. If these vars are also missing c:\windows\temp or /tmp will be used.

Parameters

string $args The arguments:

Return value

mixed the full path of the created (file|dir) or false

See also

System::tmpdir()

1 call to System::mktemp()
OS_Guess::_fromGlibCTest in vendor/pear/pear-core-minimal/src/OS/Guess.php

File

vendor/pear/pear-core-minimal/src/System.php, line 395

Class

System
System offers cross platform compatible system functions

Code

public static function mktemp($args = null) {
    static $first_time = true;
    $opts = System::_parseArgs($args, 't:d');
    if (PEAR::isError($opts)) {
        return System::raiseError($opts);
    }
    foreach ($opts[0] as $opt) {
        if ($opt[0] == 'd') {
            $tmp_is_dir = true;
        }
        elseif ($opt[0] == 't') {
            $tmpdir = $opt[1];
        }
    }
    $prefix = isset($opts[1][0]) ? $opts[1][0] : 'tmp';
    if (!isset($tmpdir)) {
        $tmpdir = System::tmpdir();
    }
    if (!System::mkDir(array(
        '-p',
        $tmpdir,
    ))) {
        return false;
    }
    $tmp = tempnam($tmpdir, $prefix);
    if (isset($tmp_is_dir)) {
        unlink($tmp);
        // be careful possible race condition here
        if (!mkdir($tmp, 0700)) {
            return System::raiseError("Unable to create temporary directory {$tmpdir}");
        }
    }
    $GLOBALS['_System_temp_files'][] = $tmp;
    if (isset($tmp_is_dir)) {
        
        //$GLOBALS['_System_temp_files'][] = dirname($tmp);
    }
    if ($first_time) {
        PEAR::registerShutdownFunc(array(
            'System',
            '_removeTmpFiles',
        ));
        $first_time = false;
    }
    return $tmp;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal