首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我可以使用file_get_contents()来比较两个文件吗?

我可以使用file_get_contents()来比较两个文件吗?
EN

Stack Overflow用户
提问于 2010-06-17 16:41:14
回答 5查看 25K关注 0票数 24

我想同步两个目录。我使用了

代码语言:javascript
复制
file_get_contents($source) === file_get_contents($dest)

来比较两个文件。这样做有什么问题吗?

EN

回答 5

Stack Overflow用户

发布于 2010-06-17 16:43:54

请改用sha1_file()。如果您只需要查看文件是否不同,它会更快,而且工作得很好。如果文件很大,则将整个字符串相互比较可能会非常繁重。由于sha1_file()返回40个字符的文件表示形式,因此比较文件将非常快。

您还可以考虑其他方法,如比较filemtime或文件大小,但这将为您提供保证的结果,即使只有一位发生了变化。

票数 20
EN

Stack Overflow用户

发布于 2010-06-17 16:46:05

这是可行的,但比起计算两个文件的校验和并比较它们,效率要低得多。校验和算法的理想候选者是SHA1和MD5。

http://php.net/sha1_file

http://php.net/md5_file

代码语言:javascript
复制
if (sha1_file($source) == sha1_file($dest)) {
    /* ... */
}
票数 3
EN

Stack Overflow用户

发布于 2010-06-17 16:44:04

看起来有点重。这会将两个文件完全作为字符串加载,然后进行比较。

我认为您最好手动打开这两个文件,然后逐个检查它们,也许只需先检查一下文件大小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3060125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档