参见英文答案 >
PHP file that should run once and delete itself. Is it possible?3个
如何在完成工作后自行删除脚本?
如何在完成工作后自行删除脚本?
编辑:
这是我的安装脚本,我希望它出于安全原因删除自己(因此攻击者将无法覆盖现有站点).
我忘了提到它有’包含’目录,我也想删除…有人可以添加如何删除这个目录? includes目录是安装脚本所在的同一文件夹的子目录.
您可以使用
unlink
删除文件,使用
__FILE__
获取当前文件的完整路径:
unlink(__FILE__);
作为“证据”:
squale@shark:~/developpement/tests/temp $ll | grep 'remove-myself.PHP' -rw-r--r-- 1 squale squale 25 2009-08-01 17:01 remove-myself.PHP
=>该文件存在
squale@shark:~/developpement/tests/temp $cat remove-myself.PHP <?PHP unlink(__FILE__);
=>它包含我给出的代码
squale@shark:~/developpement/tests/temp $PHP ./remove-myself.PHP
=>我启动了脚本
squale@shark:~/developpement/tests/temp $ll | grep 'remove-myself.PHP'
=>它不再存在
为此,您必须确保您具有所需的特权…这意味着尝试删除文件的用户需要在包含它的目录上具有权限访问权限.
当你在命令行,它通常是好的;但是如果你试图通过Apache做到这一点,你将需要给该目录/文件的Apache写访问权限 – 默认情况下,Apache通常不具有这种权限(不安全,通常不需要)
不确定它是否可以在Windows上运行,但是……它可以在Linux上运行,但Windows在执行时可能会“锁定”文件…