PHP文件重命名自己

时间:2014-11-05 22:59:54

标签: php apache upgrade rename

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

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

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

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

  

据我所知,你无法删除正在运行的脚本?

你可以试试这个:

<?php unlink(__FILE__);

完全没问题,除非有其他进程使用此文件(当然,运行进程有足够的权限这样做)。

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