使用php从远程服务器同步文件


Sync files from remote server with php

我正在尝试创建一个带有Php的桌面应用程序,以便从远程服务器同步文件
如何检查文件是否已修改?

起初我想检查修改日期,但当文件在服务器上是新的时,这可能会导致不必要的上传和下载。

让一个名为sample.txt的文件在服务器中创建(修改日期:2012-01-24 10:00:00)。当我尝试在第二天同步时,我的应用程序会下载它(修改日期:2012-01-25 11:00:00)。之后,当应用程序检查相同的文件夹时,它会尝试将相同的文件夹上传到服务器,因为服务器和我的本地系统中的文件修改日期不同。

那么,我如何像Dropbox那样跟踪更改后的文件呢?

您想要编写自己的语言(使用PHP,同样如此——几乎不是一种针对桌面使用而优化的语言)是有原因的吗?为什么不使用,例如,一致性,这正是为你的要求而设计的?

如果您想比较两个文件,看看它们是否相同,那么您需要比只比较修改日期更深入一点。您应该为每个文件生成一个散列,并比较它们是否不同。如果是,那么您就知道该文件已更改。

$file1 = md5_file('file1.php');
$file2 = md5_file('file2.php');
if ($file1 != $file2) {
   //file has changed
}