Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-更新前备份文件_Php_File_Updates - Fatal编程技术网

PHP-更新前备份文件

PHP-更新前备份文件,php,file,updates,Php,File,Updates,我创建了一个函数,从github获取某个文件的最新版本,并更新本地文件。代码如下: $remoteFile = $remote; // File from github. $localFile = $local; // File to be updated (/app/lib/example.php). // If file exists, it must be copied to a backup (.bak) version. if (file_exists($localFile)) {

我创建了一个函数,从github获取某个文件的最新版本,并更新本地文件。代码如下:

$remoteFile = $remote; // File from github.
$localFile = $local; // File to be updated (/app/lib/example.php).

// If file exists, it must be copied to a backup (.bak) version.
if (file_exists($localFile)) {
    rename($localFile, $localFile.'.bak');
}

$newFile = fopen($localFile, 'w');
fwrite($newFile, file_get_contents($remoteFile));
fclose($newFile);
问题是,此代码在重命名文件之前更新了该文件。换句话说,当前文件和备份文件将具有相同的更新代码。
有人知道为什么吗?

这似乎有些迂回。为什么不直接使用git来拉取文件呢?因为这个函数在一个框架内运行,每次我在github中更新代码时,每个安装都应该得到更新的文件,所以使用git拉取?确保代码不会运行两次。我认为这是对您描述的行为的最合理的解释。是否可以使用此解决方法备份文件?