d4h / finediff
PHP 实现的精细粒度 Diff 引擎
1.0.3
2023-06-06 09:16 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 赞助。