topvisor/horde-text-diff

文本差异生成和渲染库

v3.0.5 2024-03-30 13:40 UTC

This package is auto-updated.

Last update: 2024-08-30 14:51:05 UTC


README

一个基于文本的差异引擎和多种差异输出格式的渲染器

基于项目https://github.com/horde/Text_Diff的alpha分支,没有生产版本,已经准备好使用,并支持InlineRenderer。

为什么是当前版本的lib?

  • 2024-01-01上最相关的
  • 支持php 8.3
  • PSR-4
  • 修复了一些bug

为什么选择Horde的Text diff?

这是PHP中最好的文本差异库。它既明智又经验丰富。

相对于类似产品的优势

  • 每行内部的按单词差异
  • 每行内部的按符号差异
  • 调整输出格式
  • PHP中的最佳速度
  • PHP中的最佳内存优化

优化

对于非常长的字符串,有一个技巧:在使用差异之前将长字符串分割

示例

use Topvisor\Horde\Text\Diff;

$diff = Diff\Diff::fromFileLineArrays($linesA, $linesB);

// calc diff as word
$renderer = new Diff\InlineRenderer();
$res = $renderer->render($diff);
var_dump($res);

// calc diff as symbol
$renderer = new Topvisor\Horde\Text\Diff\InlineRenderer(['split_characters' => true]);
$res2 = $renderer->render($diff);
var_dump($res2);

许可证

查看:https://github.com/horde/Text_Diff/