Maison >développement back-end >tutoriel php >Comment créer des fichiers temporaires en PHP ? Une brève analyse de la façon d'utiliser les fichiers temporaires

Comment créer des fichiers temporaires en PHP ? Une brève analyse de la façon d'utiliser les fichiers temporaires

青灯夜游
青灯夜游avant
2021-10-12 19:27:573398parcourir

Cet article vous amènera à comprendre les fichiers temporaires en PHP et à présenter la méthode pour obtenir le répertoire de fichiers temporaires par défaut et créer des fichiers temporaires. J'espère qu'il vous sera utile !

Comment créer des fichiers temporaires en PHP ? Une brève analyse de la façon d'utiliser les fichiers temporaires

Tout le monde doit avoir une très bonne compréhension des opérations liées aux fichiers. Nous les expliquerons également en détail lorsque nous lirons les fonctions d'opération de fichiers pertinentes dans le manuel à l'avenir. Aujourd'hui, examinons d'abord certains éléments liés aux fichiers temporaires en PHP.

Obtenez le répertoire de fichiers temporaires par défaut de PHP

Ceux qui ont étudié le système d'exploitation Linux sauront qu'il existe un répertoire appelé répertoire /tmp (généralement : C:WindowsTemp sous Windows), qui est utilisé pour stocker certains fichiers temporaires. du système. Par conséquent, ce répertoire est également appelé répertoire de fichiers temporaires. De nombreux logiciels placeront certains fichiers temporairement enregistrés dans ce répertoire, notamment des caches, des scripts générés temporairement, etc. PHP pointera également le répertoire des fichiers temporaires vers ce répertoire par défaut, et les fichiers temporaires, y compris les fichiers SESSION, seront enregistrés ici. Il peut être défini via sys_tmp_dir dans le fichier php.ini.

Bien sûr, dans un programme PHP exécuté de manière dynamique, nous pouvons également obtenir le répertoire de fichiers temporaires actuel via une fonction.

print_r(sys_get_temp_dir());
// /tmp

Créer un fichier temporaire

Maintenant qu'il existe un répertoire de fichiers temporaires, PHP a bien sûr soigneusement préparé une fonction pour nous permettre de créer directement un fichier temporaire. La fonction

$tmpFile = tmpfile();
fwrite($tmpFile, "I'm tmp file.");
// ll /tmp
// vim phpbnAjbE

sleep(10);

fclose($tmpFile);
// ll /tmp

tmpfile() est utilisée pour créer ce fichier temporaire. Nous n'avons pas besoin de spécifier un nom de fichier ou un chemin pour celui-ci. En même temps, le fichier qu'elle crée est de type w+, qui est directement lisible. déposer. Lorsque fclose() est appelé, ce fichier temporaire sera automatiquement supprimé. Le manuel indique que les fichiers créés à l'aide de cette fonction seront automatiquement supprimés une fois le script terminé, mais après des tests, il a été constaté que les fichiers ne sont pas supprimés à la fin du script.

Après avoir appelé la fonction et écrit le contenu, nous faisons une pause de dix secondes. En fait, il suffit d'aller dans le répertoire /tmp pour voir si le fichier est généré avec succès. En fonction de l'heure à laquelle le fichier a été créé, nous avons trouvé le fichier généré correspondant. Puis après avoir exécuté fclose() dix secondes plus tard, vérifiez à nouveau le répertoire et vous constaterez que le fichier a été automatiquement supprimé.

Créez un fichier temporaire avec un nom unique basé sur l'état du répertoire

Enfin, PHP nous offre également une fonction très conviviale pour créer des fichiers temporaires. Fonction

$tmpFile = tempnam('/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source', 'testtmp');
$f = fopen($tmpFile, "w");
fwrite($f, "I'm tmp file.");
// ll /tmp
// vim testtmpH7bptZ

// etc目录没有写权限
$tmpFile = tempnam('/etc', 'testtmp');
$f = fopen($tmpFile, "w");
fwrite($f, "I'm tmp file.");
// ll /etc
// ll /tmp
// vim testtmpTUNucM

tempnam(), qui générera un fichier temporaire avec un nom unique basé sur l'état du répertoire. Qu'est-ce qui est basé sur l'état du répertoire ? Comme le montrent les commentaires de code ci-dessus, le répertoire /etc du deuxième paragraphe est généralement un répertoire avec les autorisations root. Sans les autorisations du compte root, nous ne pouvons pas créer ou modifier de fichiers. S'il s'agit d'un tel répertoire sans autorisations, ou d'un répertoire qui n'existe pas du tout, la fonction tempnam() générera le fichier dans le répertoire de fichiers temporaires. Si le répertoire existe normalement et est accessible en écriture, comme dans le premier morceau de code, le fichier sera créé normalement dans ce répertoire. Le deuxième paramètre de la fonction

tempnam() est de spécifier le préfixe du nom du fichier généré. La fonction tmpfile() ne peut pas spécifier de nom de fichier, mais cette fonction peut donner au nom de fichier un préfixe fixe et garantir que la partie du nom de fichier générée automatiquement après le préfixe est unique.

Résumé

J'ai découvert ces fonctions très intéressantes Que ce soit utilisé comme cache temporaire ou pour créer certains fichiers, ces deux fonctions d'opération de fichiers temporaires sont très utiles. Nous pouvons essayer d’utiliser davantage ces fonctions dans les développements futurs, et peut-être qu’elles pourront nous apporter de nombreuses améliorations de productivité.

Code de test : https://github.com/zhangyue0503/dev-blog/blob/master/php/202006/source/Exploitation de fichiers temporaires en PHP.php

Apprentissage recommandé : "Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer