(PECL xdiff >= 0.2.0)
xdiff_string_diff — 生成两个字符串的统一差异
生成包含 old_data
字符串和 new_data
字符串之间差异的统一差异,并将其返回。生成的差异是人类可读的。可选的 context
参数指定每个更改周围应添加多少行上下文。将 minimal
参数设置为 true 将导致输出尽可能短的补丁文件(可能需要很长时间)。
old_data
第一个包含数据的字符串。它充当“旧”数据。
new_data
第二个包含数据的字符串。它充当“新”数据。
context
指示您希望在差异结果中包含多少行上下文。
minimal
如果要最小化结果的大小(可能需要很长时间),请将此参数设置为 true
。
返回包含结果差异的字符串,如果发生内部错误则返回 false
。
示例 #1 xdiff_string_diff() 示例
以下代码生成两篇文章的统一差异。
<?php
$old_article = file_get_contents('./old_article.txt');
$new_article = $_REQUEST['article']; /* 假设有人将新文章粘贴到 html 表单中 */
$diff = xdiff_string_diff($old_article, $new_article, 1);
if (is_string($diff)) {
echo "两篇文章之间的差异:\n";
echo $diff;
}
?>
注意:
此函数对二进制字符串效果不佳。要生成二进制字符串的差异,请使用 xdiff_string_bdiff()/xdiff_string_rabdiff()。