PHP文件自身重命名

PHP文件自身重命名,php,apache,upgrade,rename,Php,Apache,Upgrade,Rename,我正在尝试为我们的一个网站编写升级脚本。当前,脚本将解压从升级链接提供的文件并解压到目录 我的问题是,如果有自己的新版本,即upgrader new.php我需要脚本运行完成,然后删除自己,然后将upgrader new.php重命名为upgrader.php 我能想到的唯一解决方案是创建第三个文件,即upgrade assist.php,该文件将在任何升级之前运行,以检查upgrader new.php是否存在,如果存在,则删除原始文件并将新文件重命名为正确的名称。我看到了问题,因为原始脚本仍

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

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

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

有什么建议吗

谢谢

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

你可以试试这个:

<?php unlink(__FILE__);

谢谢你的回答!在原始脚本被删除后,是否有关于重命名新脚本的建议?是的,您可以!您只需运行新的PHP脚本(重命名为PHP脚本)并从旧脚本中优雅地退出即可。@SCHULTZ当文件被删除时,并不意味着与该文件关联的脚本将停止—它在内存中。好吧,该死!我想它会被锁定在文件系统中。非常感谢!考虑一个更健壮的系统。Laravel的数据库迁移是单个文件,文件名中有日期,因此系统知道应用它们的顺序。允许对内容进行版本控制并使其清晰可见。