如何使用PHP找到两个文本文件之间的区别

时间:2012-05-19 20:44:20

标签: php scripting

最近,我一直在想如何用PHP找到两个文件之间的区别。让我们说例如我有一个文本文件说:

"Line one data = test test"

然后一个文件说:

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

我想要做的是输出两个文件之间的区别:

"Line two data = test test"

如何使用PHP完成此操作?任何帮助将非常感谢!

3 个答案:

答案 0 :(得分: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进行区分大小写的替换。

答案 1 :(得分: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快。

答案 2 :(得分:0)

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

有一个名为“Notepad ++”的好程序,它能够添加插件,其中有一个用于比较的插件,如上所述。