我试图为我们的某个网站编写升级脚本。目前,该脚本将解压缩从升级链接提供的文件并解压缩到该目录。
我的问题是,如果有自己的新版本,upgrader-new.php
我需要脚本运行完成然后自行删除,然后将upgrader-new.php
重命名为upgrader.php
。
我能想到的唯一解决方案是创建第三个文件,即upgrade-assist.php
,在任何升级之前运行,以检查upgrader-new.php
是否存在,如果存在,删除原始文件并重命名新的正确名称。我预见到问题,因为原始脚本仍然需要调用upgrader-assist.php
,据我所知,你不能删除正在运行的脚本?
有什么建议吗?
谢谢!
答案 0 :(得分:4)
据我所知,你无法删除正在运行的脚本?
你可以试试这个:
<?php unlink(__FILE__);
完全没问题,除非有其他进程使用此文件(当然,运行进程有足够的权限这样做)。
文件不是逐行处理和执行的,而是加载到内存中,因此您可以自由地重命名或删除它,它仍然会一直运行到最后(或致命错误)。