我想同步两个目录。我使用了
file_get_contents($source) === file_get_contents($dest)
来比较两个文件。这样做有什么问题吗?
发布于 2010-06-17 16:43:54
请改用sha1_file()
。如果您只需要查看文件是否不同,它会更快,而且工作得很好。如果文件很大,则将整个字符串相互比较可能会非常繁重。由于sha1_file()
返回40个字符的文件表示形式,因此比较文件将非常快。
您还可以考虑其他方法,如比较filemtime
或文件大小,但这将为您提供保证的结果,即使只有一位发生了变化。
发布于 2010-06-17 16:46:05
这是可行的,但比起计算两个文件的校验和并比较它们,效率要低得多。校验和算法的理想候选者是SHA1和MD5。
if (sha1_file($source) == sha1_file($dest)) {
/* ... */
}
发布于 2010-06-17 16:44:04
看起来有点重。这会将两个文件完全作为字符串加载,然后进行比较。
我认为您最好手动打开这两个文件,然后逐个检查它们,也许只需先检查一下文件大小。
https://stackoverflow.com/questions/3060125
复制相似问题