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