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()