tempnam

tempnam($directory, $prefix)

Crée un fichier vide au nom unique dans le dossier donné et renvoie son chemin, en cas d’échec false. Contrairement à tmpfile(), le fichier n’est pas supprimé automatiquement.

Paramètres

  • $directory – le dossier dans lequel le fichier est créé. Quand il n’existe pas, PHP utilise le dossier système des fichiers temporaires.
  • $prefix – le début du nom du fichier.

Exemples

$path = tempnam(sys_get_temp_dir(), "gar");
var_dump(is_file($path)); // bool(true)
echo filesize($path); // 0
// on écrit dans le fichier comme dans n'importe quel autre
file_put_contents($path, "résultat partiel");
echo file_get_contents($path); // résultat partiel
// le nom commence par le préfixe
var_dump(strpos(basename($path), "gar") === 0); // bool(true)
// le fichier n'est pas supprimé automatiquement
unlink($path);
var_dump(file_exists($path)); // bool(false)

Points d’attention

  • Supprimez vous-même le fichier avec unlink() après usage. Contrairement à tmpfile(), il reste après la fin du script.
  • Sous Windows, seuls les trois premiers caractères du préfixe sont utilisés, sous Linux jusqu’à 63.
  • Quand le dossier n’existe pas, PHP crée le fichier dans le dossier système des fichiers temporaires et affiche un avis. Vérifiez donc le résultat.
  • Le chemin renvoyé convient aux fonctions qui veulent un nom de fichier (par exemple le traitement d’une image ou d’un ZIP). Pour travailler seulement via un descripteur, tmpfile() suffit.

Fonctions associées :
tmpfile()
sys_get_temp_dir()
unlink()