Articles

Le mois de la fonction PHP : temporaire

  • Ecrit par Julien Pauli
  • lundi 16 avril 2007
Image pour le titre du contenu

This document is also available in English en 



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&eacute;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&eacute;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&eacute;es');
fclose($fp);
?>

Exemple 4 - Récupération du dossier temporaire du système :

<?php
// Equivalent &agrave; $_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