<分区>
如何让脚本在完成工作后自行删除?
编辑:
它用于我的安装脚本,出于安全原因我希望它自行删除(这样攻击者将无法覆盖现有站点)。
我忘了提到它有它的“包含”目录,我也想将其删除...有人可以添加如何同时删除此目录吗? includes 目录是安装脚本所在文件夹的子目录。
<分区>
如何让脚本在完成工作后自行删除?
编辑:
它用于我的安装脚本,出于安全原因我希望它自行删除(这样攻击者将无法覆盖现有站点)。
我忘了提到它有它的“包含”目录,我也想将其删除...有人可以添加如何同时删除此目录吗? 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 可能会在执行文件时有点“锁定”文件......
关于php - 如何使 php 脚本删除自身(包括目录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1216755/