jsandersuk / string-diffs
定位并突出显示两个字符串之间的差异
0.0.1
2018-06-01 11:14 UTC
Requires
- php: >=7.1.0
- bramus/ansi-php: 3.0.*
This package is auto-updated.
Last update: 2024-09-07 21:49:48 UTC
README
此包比较两个字符串并突出显示任何已删除或插入的文本。
基本用法
要生成两个字符串之间的“差异”,您需要创建一个Calculator实例,并向它提供一个样式化器——一个处理样式化删除和插入文本以突出显示给最终用户的类。
以下示例旨在将差异输出到控制台/终端。有关如何更改输出样式的信息,请参阅样式输出。
$stylist = new JSandersUK\StringDiffs\Stylists\ConsoleStylist(); $calculator = new JSandersUK\StringDiffs\Calculator($stylist); $styledDifferenceText = $calculator->diff($old, $new); print $styledDifferenceText;
样式输出
在差异中,删除和插入的文本在返回之前被样式化,以便突出显示差异给最终用户。
您需要选择相关的“样式化器”类来匹配您将显示差异的环境。
输出到控制台/终端
当将差异打印到控制台时,您可以使用ConsoleStylist,它使用ANSI转义序列来为删除和插入的文本着色。
默认情况下,删除的文本以红色为背景,白色为前景,插入的文本以绿色为背景,白色为前景。可以通过向类的构造函数传递自定义值来配置颜色。
基本用法
$stylist = new JSandersUK\StringDiffs\Stylists\ConsoleStylist();
使用自定义颜色使用
此包使用bramus/ansi-php包来着色文本,并期望其常量设置颜色。
注意前景和背景常量之间的区别 - COLOR_FG_WHITE 与 COLOR_BG_WHITE;“FG”(前景)和“BG”(背景)
$stylist = new JSandersUK\StringDiffs\Stylists\ConsoleStylist( Bramus\Ansi\ControlSequences\EscapeSequences\Enums\SGR::COLOR_FG_WHITE, Bramus\Ansi\ControlSequences\EscapeSequences\Enums\SGR::COLOR_BG_RED, Bramus\Ansi\ControlSequences\EscapeSequences\Enums\SGR::COLOR_FG_WHITE, Bramus\Ansi\ControlSequences\EscapeSequences\Enums\SGR::COLOR_BG_GREEN );
输出到HTML
当将差异打印到浏览器时,您可以使用HtmlStylist,它将删除和插入的文本包裹在应用了类别的HTML元素中。
默认情况下,文本包裹在SPAN元素中,删除的文本应用了removed-text类,插入的文本应用了inserted-text类。可以通过向类的构造函数传递自定义值来配置包装文本的HTML元素和两个类。
基本用法
$stylist = new JSandersUK\StringDiffs\Stylists\HtmlStylist();;
使用HTML类和元素使用
$stylist = new JSandersUK\StringDiffs\Stylists\HtmlStylist( 'old-text', 'new-text', 'div' );