比较PHP中的两个.txt文件(~1MB)

比较PHP中的两个.txt文件(~1MB),php,html,curl,Php,Html,Curl,我正在使用PHP和cUrl编写一个程序,偶尔将特定网站的HTML保存到服务器上。不过,我只想在网站上发生更改时实际保存文件,所以我的问题是:如何将长文本字符串(cUrl中最新的HTML)与现有的.txt文件进行比较?txt文件大约为700kB,让您了解其大小。我是mostrcmp()可能是你最好的选择 如果两个字符串相同,则返回0: 所以 当然,如果存在微小的差异,例如每次具有不同值的时间戳,则这将不起作用 我不知道您正在保存的网站上的服务器表现如何,但是如果它表现正常,并且网站编码正确,那么如

我正在使用PHP和cUrl编写一个程序,偶尔将特定网站的HTML保存到服务器上。不过,我只想在网站上发生更改时实际保存文件,所以我的问题是:如何将长文本字符串(cUrl中最新的HTML)与现有的.txt文件进行比较?txt文件大约为700kB,让您了解其大小。我是mo

strcmp()
可能是你最好的选择

如果两个字符串相同,则返回
0

所以


当然,如果存在微小的差异,例如每次具有不同值的时间戳,则这将不起作用

我不知道您正在保存的网站上的服务器表现如何,但是如果它表现正常,并且网站编码正确,那么如果没有任何更改,它应该返回
304未修改
状态

我知道这是两个很大的假设,但你应该在尝试其他事情之前检查一下


请参阅。

对收到的HTML进行哈希,并将其与服务器上保存的HTML哈希进行比较。这只是一张支票。@SpencerGrantDoak,如果输出中的任何地方都有邮戳,则每次都可能显示“假”差异。这一点很好,@scunlife。我想,他可以去掉HTML头,只对HTML体进行散列。除非页面是静态的,否则这是不可能的,至少在实际情况下是不可能的。我检查过了,没有日期戳!它们是相同的。我现在要试试这个。是的,看起来它很不幸地返回了200。但是感谢您的想法,这将是非常好的。为了让它起作用,请求需要包含标题,如自以来修改的
,或不匹配的
。没问题-祝您好运!
if(strcmp($savedHTML, $newHTML) !== 0) {

    save($newHTML); // this would be your own function for saving

}