最近,我一直想知道如何使用 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";
如果 $str2 是较长的字符串并且 $str1 总是在 $str2 的开头,那么您可以使用:
echo substr($str2, strlen($str1));
它比 str_replace 快。
您可以从两个文件的 md5 校验和开始。如果输出哈希不同,则文件不同。但我很确定这不是我想的问题。因为我认为你的要求没有简单的答案。您可能想更简洁地阅读“差异”。这是一种算法,它可以读取 2 个文件,不仅可以确定它们是否不同,而且还可以对 2 个文件进行并排比较,向您显示差异所在。现在我确信这在 PHP 中是可行的。只是不确定是否有人有,我也没有广泛搜索它。只有当我在 svn 或 git 上运行我的版本控制代码时才使用 diff。
有一个名为“Notepad++”的好程序,它能够向其中添加插件,其中一个用于比较的插件就像刚才描述的那样可用。