如何在PHP中进行wiki/wordpress样式比较/差异?

Gnu*_*fo1 3 php diff

有点像这样来自WordPress: Wordpress差异

或者来自MediaWiki: 维基百科差异

我在PHP中尝试了几个差异引擎,最全面的似乎是(http://www.raymondhill.net/finediff/viewdiff-ex.php)和PEAR的Text_Diff,但我似乎无法找到任何选项两个版本并排堆叠,如上图所示.我认为这比将两个版本合二为一,更容易阅读.

Gnu*_*fo1 5

找到了一个解决方案 - 从WordPress(wp-includes/wp-diff.php)中获取与PEAR Text_Diff结合使用的WP_Text_Diff_Renderer_Table类:

$diff = new Text_Diff('auto', array($lines1, $lines2));
$render = new WP_Text_Diff_Renderer_Table;
echo $render->render($diff);
Run Code Online (Sandbox Code Playgroud)

当包含在标签中时,上面的代码产生与上述WordPress屏幕截图相同的HTML布局.样式有四个CSS规则:

  • .diff-deletedline - 从源文本更改的段落/行
  • .diff-addedline - 目标文本中更改的段落/行
  • del - 从源更改的单个单词
  • ins - 目标中更改的单个单词

更多细节在这里:http://www.webdevguides.co.uk/php-2/wordpress-style-diff-in-php