phinor / finediff
PHP实现的细粒度Diff引擎
0.1.1
2023-04-12 06:07 UTC
Requires
- php: ~8.1
Requires (Dev)
- mockery/mockery: ^1.3
- phpunit/phpunit: ^8.5 || ^9.2
README
最初由Raymond Hill编写(https://github.com/gorhill/PHP-FineDiff)
安装
composer require d4h/finediff
使用
渲染HTML
将两个字符串之间的差异渲染为HTML
$diff = new FineDiff\Diff(); echo $diff->render('string one', 'string two');
这将输出以下内容:
string <ins>tw</ins>o<del>ne</del>
您可以将粒度更改为 CogPowered\FineDiff\Granularity\Word
$diff = new FineDiff\Diff(new FineDiff\Granularity\Word()); // Or via the setter method: $diff->setGranularity(new FineDiff\Granularity\Word());
这样输出将是:
string <del>one</del><ins>two</ins>
您可以通过将其传递给Diff构造函数来完成此操作
获取指令码
指令码是告诉FineDiff如何将一个字符串转换为另一个字符串的东西。
$diff = new FineDiff\Diff(); echo $diff->getOpcodes('string one', 'string two');
这将输出以下内容:
c7d3i3:two
使用指令码渲染文本
$renderer = new FineDiff\Render\Text(); echo $renderer->process('string one', 'c7d3i3:two');
将输出以下内容:
string two
与HTML相同
$renderer = new FineDiff\Render\Html(); echo $renderer->process('string one', 'c7d3i3:two');
鸣谢
由D4H赞助。