PHP文件重命名自身


PHP File rename itself

我正试图为我们的一个网站编写升级脚本。目前,该脚本将解压缩从升级链接提供的文件,并解压缩到目录中。

我的问题是,如果有一个新版本的upgrader-new.php,我需要脚本运行到完成,然后删除它自己,然后将upgrader-new.php重命名为upgrader.php

我能想到的唯一解决方案是创建第三个文件,即upgrade-assist.php,它将在任何升级之前运行,以检查upgrader-new.php是否存在,如果存在,则删除原始文件并将新文件重命名为正确的名称。我放弃了问题,因为原始脚本仍然需要调用upgrader-assist.php,而且据我所知,你不能删除正在运行的脚本吗?

有什么建议吗?

谢谢!

据我所知,你不能删除正在运行的脚本吗?

你可以试试这个:

<?php unlink(__FILE__);

这是非常好的,除非有其他进程使用这个文件(当然运行的进程有足够的权限这样做)。

文件不是逐行处理和执行的,而是加载到内存中,这样您就可以自由地重命名或删除它,它仍然会运行到最后(或致命错误)。