7
votes

Comment faire du script PHP supprime lui-même (et inclut DIR)

Comment faire le script supprimer lui-même après que cela finira son travail?

EDIT:

C'est pour mon script d'installation, je souhaite qu'elle se supprimait pour des raisons de sécurité (afin que l'attaquant ne soit pas en mesure d'écraser le site existant).

J'ai oublié de mentionner que il a son "Comprend" répertoire que j'aimerais être supprimé aussi ... que quelqu'un pourrait ajouter comment supprimer ce dir? Comprend le répertoire est le sous-répertoire du même dossier où l'installation d'installation est située.


1 commentaires

Dans Unix comme des systèmes, vous pouvez supprimer le fichier de lui-même, car il s'agissait fondamentalement, le Supprimer Il suffit de dissocier l'inode du fichier dans le répertoire, lorsque le programme cesse d'exécuter, le dernier Dislink (le programme lui-même) est supprimé et l'inode n'a plus de liens. (donc est supprimé). Dans Windows, comme des systèmes d'exploitation, vous ne pouvez pas cela, car la suppression de vérifications s'il existe d'autres programmes qui l'accédent (qu'il ne pourra pas être supprimé, sauf si vous avez un fil externe qui sera déclenché par le programme d'appel.


4 Réponses :


4
votes

Essayez Dislink> Dislink . L'utilisateur WebServer aura besoin d'autorisations d'écriture pour le répertoire / script.


0 commentaires

12
votes

Vous pouvez utiliser Dislink code> pour supprimer un fichier et __ fichier __ code> Pour obtenir le chemin complet du fichier actuel:

squale@shark:~/developpement/tests/temp
$ ll | grep 'remove-myself.php'


1 commentaires

Génial, je vais le tester. Je suis sur Linux et je dois dire que j'évite les serveurs Windows alors ne vous inquiétez pas pour Windows :)



1
votes

Unlink ($ _ serveur ["script_filename ']);
ou
Unlink (__ Fichier __);


0 commentaires

4
votes

Note latérale à d'autres réponses:

Je recommanderais de renommer le fichier ou de mettre une instruction de sortie au début du fichier, en supprimant l'IMHO n'est pas une bonne option. L'utilisateur peut vouloir lire votre script d'installation ou réexécuter. Peut-être que cela pourrait être une meilleure solution: P>

rename(__FILE__, '/tmp/' . basename(__FILE__) . '.bak');


0 commentaires