downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

version_compare> <set_time_limit
[edit] Last updated: Fri, 17 May 2013

view this page in

sys_get_temp_dir

(PHP 5 >= 5.2.1)

sys_get_temp_dirRetourne le chemin du répertoire utilisé pour les fichiers temporaires

Description

string sys_get_temp_dir ( void )

Retourne le chemin du répertoire PHP où sont enregistrés les fichiers temporaires par défaut.

Valeurs de retour

Retourne le chemin du répertoire temporaire.

Exemples

Exemple #1 Exemple avec sys_get_temp_dir()

<?php
// Création d'un fichier temporaire dans le dossier
// des fichiers temporaires, en utilisant la fonction sys_get_temp_dir()
$temp_file tempnam(sys_get_temp_dir(), 'Tux');

echo 
$temp_file;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

C:\Windows\Temp\TuxA318.tmp

Voir aussi



version_compare> <set_time_limit
[edit] Last updated: Fri, 17 May 2013
 
add a note add a note User Contributed Notes sys_get_temp_dir - [5 notes]
up
3
Anonymous
5 years ago
This function does not always add trailing slash. This behaviour is inconsistent across systems, so you have keep an eye on it.
up
1
php at ktools.eu
3 years ago
-better to use the php methode 'getenv()' to access the enviroment vars
-the original 'sys_get_temp_dir()' don't use realpath, than it's better to make 'realpath(sys_get_temp_dir())'

<?php
 
if ( !function_exists('sys_get_temp_dir')) {
  function
sys_get_temp_dir() {
      if(
$temp=getenv('TMP') )        return $temp;
      if(
$temp=getenv('TEMP') )        return $temp;
      if(
$temp=getenv('TMPDIR') )    return $temp;
     
$temp=tempnam(__FILE__,'');
      if (
file_exists($temp)) {
         
unlink($temp);
          return
dirname($temp);
      }
      return
null;
  }
 }

 echo
realpath(sys_get_temp_dir());
?>
up
1
bert-jan at bugbyte dot nl
3 years ago
This function does not account for virtualhost-specific modifications to the temp path and/or open_basedir:

<Virtualhost>
php_admin_value open_basedir /home/user
php_admin_value upload_tmp_dir /home/user/tmp
php_admin_value session.save_path /home/user/tmp
</Virtualhost>

Within this config it still returns /tmp
up
-1
dannel at aaronexodus dot com
3 years ago
There's no need to use a random name for the directory for tempnam.

Since a file and a directory can't share the same name on the filesystem, we can exploit this and simply use the name of the current file. It is guaranteed that the directory won't exist (because it's a file, of course).

Improving on the last post...

<?php
if ( !function_exists('sys_get_temp_dir')) {
  function
sys_get_temp_dir() {
    if (!empty(
$_ENV['TMP'])) { return realpath($_ENV['TMP']); }
    if (!empty(
$_ENV['TMPDIR'])) { return realpath( $_ENV['TMPDIR']); }
    if (!empty(
$_ENV['TEMP'])) { return realpath( $_ENV['TEMP']); }
   
$tempfile=tempnam(__FILE__,'');
    if (
file_exists($tempfile)) {
     
unlink($tempfile);
      return
realpath(dirname($tempfile));
    }
    return
null;
  }
}
?>
up
-1
php [spat] hm2k.org
4 years ago
I went ahead and slightly improved the function provided.

<?php
if ( !function_exists('sys_get_temp_dir')) {
  function
sys_get_temp_dir() {
    if (!empty(
$_ENV['TMP'])) { return realpath($_ENV['TMP']); }
    if (!empty(
$_ENV['TMPDIR'])) { return realpath( $_ENV['TMPDIR']); }
    if (!empty(
$_ENV['TEMP'])) { return realpath( $_ENV['TEMP']); }
   
$tempfile=tempnam(uniqid(rand(),TRUE),'');
    if (
file_exists($tempfile)) {
   
unlink($tempfile);
    return
realpath(dirname($tempfile));
    }
  }
}
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites