1

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

"Line one data = test test"

然后一个文件说:

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

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

"Line two data = test test"

我怎样才能用 PHP 做到这一点?任何帮助将不胜感激!

4

3 回答 3

0

将文本文件转换为字符串,然后使用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进行区分大小写的替换。

于 2012-05-19T20:47:03.213 回答
0
$str1 = "Line one data = test test";
$str2 = "Line one data = test test Line two data = test test";

如果 $str2 是较长的字符串并且 $str1 总是在 $str2 的开头,那么您可以使用:

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

它比 str_replace 快。

于 2012-05-19T20:49:03.400 回答
0

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

有一个名为“Notepad++”的好程序,它能够向其中添加插件,其中一个用于比较的插件就像刚才描述的那样可用。

于 2012-05-20T00:28:22.487 回答