Articles
This document is also available in English
tmpfile() en alliance avec tempnam() fournissent un outils pratique pour créer un fichier temporaire sans se soucier de son nom. tmpfile() va créer un fichier temporaire dans votre dossier temporaire, et vous retourne la ressource. Le fichier sera détruit à la fin du script. Ainsi on utilisera tmpfile() plutôt en tant que buffer temporaire de conversion entre 2 espaces différents.
Exemple 1 - Envoi d'un texte vers un FTP, nous voulons convertir un texte en un fichier :
tempnam() s'avère plus pratique lorsqu'il s'agit de conserver le fichier crée. Plutot que d'utiliser file_put_contents() et de devoir lui spécifier un nom de fichier, tempnam() est un raccourci pour créer un fichier.
<?php $file = tmpfile(); fwrite($file,$_POST['mon_champ_texte']); fseek($file,0); ftp_fput($ftpConnexion,"my_dir/myFtpFile.ext",$file,FTP_ASCII); fclose($file); // détruit le fichier temporaire ?>
Exemple 2 - Upload d'un fichier et placement dans un dossier temporaire précis :
<?php function upload_to_tempfile($uploadedFileName) { if (is_uploaded_file($uploadedFileName)) { $tempFile = tempnam('my_upload_dir','upload_temp_'); // seuls 'upl' seront utilisés pour le nom du fichier move_uploaded_file($uploadedFileName, $tempFile); return is_file($tempFile); } } ?>
Exemple 3 - Envoi et traitement d'un fichier dans un dossier relatif :
<?php $tmpfile = tempnam(realpath("../tmp/"), "tmp") ; $fp = fopen($tmpfile, "w"); fwrite($fp, 'des données'); fclose($fp); ?>
Exemple 4 - Récupération du dossier temporaire du système :
<?php // Equivalent à $_ENV['TMP']; echo dirname(tempnam('''')); ?>
A mémoriser
- tmpfile() va crée un fichier temporaire dans le dossier temporaire de l'environnement. Ce fichier est dans tous les cas détruit à la fin du script
- tempname() retourne le chemin complet du fichier temporaire crée, ce qui est pratique pour ensuite pouvoir le traiter ( fopen(), fwrite() ...)
- tempname() n'accepte que des chemins absolus, utilisez realpath() si nécessaire. Si le dossier spécifié n'existe pas ou n'est pas accessible, alors le dossier temporaire du système sera utilisé, sans vous en avertir.
- tempname() n'utilisera que les 3 premiers caractères du nom passé en second paramètre.
| < Précédent | Suivant > |
|---|
Commentaires
Vous pouvez ajouter votre commentaire! |
Vous devez vous connecter pour commenter


