iphis / finediff
PHP 实现的精细粒度差分引擎
Requires
- php: >=5.6
Requires (Dev)
- mockery/mockery: ^0.9
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-09-29 02:44:33 UTC
README
最初由 Raymond Hill (https://github.com/gorhill/PHP-FineDiff) 编写,并由 Rob Crowe (https://github.com/cogpowered/FineDiff) 调整以适应现代世界。FineDiff 已更新至 PHP 7 和 mb_string。
安装
Composer
使用 FineDiff 的首选方式是通过 Composer。
将以下内容添加到您的 composer.json 文件中
{ "require": { "iphis/finediff": "0.4.*" } }
升级
0.3.x 引入了一个不兼容的版本,所以如果你已经存储了 opcodes,请不要升级!
0.3.x
修复了一个双重编码问题,生成的 opcode 比所需更长。
用法
渲染 HTML
渲染两个字符串之间的差异为 HTML
$diff = new iphis\FineDiff\Diff; echo $diff->render('string one', 'string two');
这将输出
string <ins>tw</ins>o<del>ne</del>
您可以将粒度更改为 iphis\FineDiff\Granularity\Word
以获得以下输出
string <del>one</del><ins>two</ins>
您可以通过将其传递给 Diff 构造函数来实现这一点
$granularity = new iphis\FineDiff\Granularity\Word; $diff = new iphis\FineDiff\Diff($granularity);
抓取 opcodes 指令
Opcode 指令是告诉 FineDiff 如何将一个字符串转换为另一个字符串的。
$diff = new iphis\FineDiff\Diff; echo $diff->getOpcodes('string one', 'string two');
这将输出
c7d3i3:two
使用 opcodes 渲染文本
$render = new iphis\FineDiff\Render\Text; echo $render->process('string one', 'c7d3i3:two');
这将输出
string two
与 HTML 相同
$render = new iphis\FineDiff\Render\Html; echo $render->process('string one', 'c7d3i3:two');
许可
版权 (c) 2011 Raymond Hill (http://raymondhill.net/blog/?p=441) 版权 (c) 2013 Rob Crowe (http://cogpowered.com) 版权 (c) 2017 Tobias Knipping (http://tk-schulsoftware.de)
在 The MIT License 下授权
特此授予任何人获取本软件及其相关文档文件(“软件”)副本的权利,免费使用软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许获得软件副本的人进行此类操作,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是根据合同、侵权或其他法律产生,还是源于、源于或与软件或软件的使用或其他交易有关。