riki137 / finediff
PHP8实现的精细粒度Diff引擎
1.1.2
2022-05-26 07:53 UTC
Requires
- php: ^7.4 || ^8.1
- ext-mbstring: *
Requires (Dev)
- phpstan/phpstan: ^1.4
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 赞助。