如何使用 PHP 查找两个文本文件之间的差异


How to find the difference between two text files with PHP

最近,我一直想知道如何使用PHP找到两个文件之间的差异。例如,假设我有一个文本文件,上面写着:

"Line one data = test test"

然后有一个文件说:

"Line one data = test test Line two data = test test"

我想做的是输出两个文件之间的差异,即:

"Line two data = test test"

如何使用 PHP 实现此目的?任何帮助将不胜感激!

将文本文件转换为字符串,然后使用 str_replace((

$one = "Line one data = test test";
$two = "Line one data = test test Line two data = test test";
$difference = str_replace($one, "", $two);

或者使用 str_ireplace 进行区分大小写的替换。

$str1 = "Line one data = test test";
$str2 = "Line one data = test test Line two data = test test";

如果 $str 2 是较长的字符串,而 $str 1 始终位于 $str 2 的开头,则可以使用:

echo substr($str2, strlen($str1));

它比str_replace快。

您可以从两个文件的 md5 校验和开始。如果输出哈希不同,则文件不同。但我很确定这不是心中的问题。因为我认为你的要求没有简单的答案。您可能希望更简洁地阅读"diff"。这是一种算法,可以读取 2 个文件,不仅可以确定它们是否不同,而且基本上可以并排比较 2 个文件,向您显示差异在哪里。现在我确定这在 PHP 中是可行的。只是不确定是否有人,然后我也没有广泛搜索它。只有当我使用 diff 时,当我在 svn 或 git 上运行我的版本控制代码时。

有一个名为"Notepad ++"的不错程序,它能够向其添加插件,其中可以使用用于比较的插件,如刚才描述的那样。