php - 如何在 PHP 中进行 wiki/wordpress 风格比较/差异?

标签 php diff

有点像 WordPress 中的这个:Wordpress diff

或来自 MediaWiki:Wikipedia diff

我在 PHP 中尝试过几种差异引擎,最全面的似乎是 ( http://www.raymondhill.net/finediff/viewdiff-ex.php ) 和 PEAR 的 Text_Diff,但我似乎找不到任何选项可以像上图那样将两个版本并排堆叠.我认为这比将两个版本合而为一更容易阅读。

最佳答案

已找到解决方案 - 通过从 WordPress (wp-includes/wp-diff.php) 获取 WP_Text_Diff_Renderer_Table 类,该类与 PEAR Text_Diff 结合使用:

$diff = new Text_Diff('auto', array($lines1, $lines2));
$render = new WP_Text_Diff_Renderer_Table;
echo $render->render($diff);

当包裹在标签中时,上面的代码会生成与上面的 WordPress 屏幕截图相同的 HTML 布局。然后有四个 CSS 规则来设置样式:

  • .diff-deletedline - 的 从中更改的段落/行 原文
  • .diff-addedline - 段落/行 在目的地发生了变化 正文
  • del - 单个词改变了 从源头
  • ins - 单独的单词 目的地变了

此处有更多详细信息:http://www.webdevguides.co.uk/php-2/wordpress-style-diff-in-php

关于php - 如何在 PHP 中进行 wiki/wordpress 风格比较/差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6263428/

相关文章:

php - 函数调用次数对性能有多大影响?

php - 为什么在使用不同 PC 但具有相同配置时 MIME 类型不同?

git - 差异只改变了部分行

diff - 有没有办法逐句而不是逐行区分文件?

python - 使用基于差异的补丁方法更新我的程序

PHP - 安全更改密码表单/方法

PHP 错误缺少参数

php - 哪个最不密集 - 在 PHP 或 MySQL 中计算唯一时间?

linux - 如果需要,如何创建和应用补丁文件,跳过文件版本?