jsandersuk/string-diffs

定位并突出显示两个字符串之间的差异

0.0.1 2018-06-01 11:14 UTC

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'
);