Maison > développement back-end > Problème PHP > Comment exploiter les fichiers temporaires en PHP

Comment exploiter les fichiers temporaires en PHP

醉折花枝作酒筹
Libérer: 2023-03-10 07:28:01
avant
2398 Les gens l'ont consulté

Cet article vous présentera comment exploiter les fichiers temporaires en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Comment exploiter les fichiers temporaires en PHP

Je pense que tout le monde en sait déjà beaucoup sur les 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.

Obtenir le répertoire de fichiers temporaires créé 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 (sous Windows généralement : C:WindowsTemp), qui est utilisé pour stocker certains fichiers temporaires du système, ce répertoire est donc é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é dynamiquement, nous pouvons également obtenir le répertoire de fichiers temporaires actuel via une fonction.

print_r(sys_get_temp_dir());
// /tmp
Copier après la connexion

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
Copier après la connexion

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+, c'est-à-dire. Il s'agit directement d'un fichier lisible et inscriptible. 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éer 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
Copier après la connexion

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, qu'elles soient utilisées comme cache temporaire ou pour créer certains fichiers, ces deux fonctions d'opérations sur les 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/%E5%9C%A8PHP%E4%B8%AD%E6%93%8D%E4%BD%9C%E4%B8%B4%E6%97%B6%E6%96%87%E4%BB%B6.php
Copier après la connexion

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!

Étiquettes associées:
php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal