baraja-core/simple-php-diff

此包的最新版本(v1.0.3)没有提供许可信息。

在PHP中快速查找两个文本文件之间的差异。

v1.0.3 2022-05-30 13:55 UTC

This package is auto-updated.

Last update: 2024-09-07 16:16:15 UTC


README

在PHP中快速查找两个文本文件之间的差异。

想法

该库可以非常快速地比较两个文本文件,并返回包含差异的对象。

差异以编号行呈现,便于用户查看变化。您还可以在浏览变化时,从 Diff 对象中按整数数组读取已更改的行。

📦 安装

建议使用 Composer 进行安装,您也可以在 PackagistGitHub 上找到此包。

要安装,请使用以下命令

$ composer require baraja-core/simple-php-diff

您可以通过创建内部类的实例来手动使用该包,或者注册DIC扩展将服务直接链接到Nette框架。

示例

Default theme

Diff可以渲染为HTML(使用本地方法 SimpleDiff::renderDiff($diff)

Default theme

如何使用

只需创建一个SimpleDiff实例并比较两个文件

$left = 'First text';
$right = 'Second text';

$diff = (new \Baraja\DiffGenerator\SimpleDiff)->compare($left, $right);

// simple render diff
echo '<code><pre>'
     . htmlspecialchars((string) $diff)
     . '</pre></code>';

compare() 方法返回一个包含比较结果的完整 Diff 对象,您可以从该对象中获取更多信息。

例如,要获取更改行的列表

echo 'Changed lines: ';
echo implode(', ', $diff->getChangedLines());

以HTML显示Diff

我们经常需要直接在浏览器中显示差异,为此,原生的 renderDiff() 方法是合适的。

$left = 'First text';
$right = 'Second text';

$simpleDiff = new \Baraja\DiffGenerator\SimpleDiff;
$diff = $simpleDiff->compare($left, $right);

echo $simpleDiff->renderDiff($diff);

该方法接受Diff并返回可以直接显示给用户的经过处理的HTML。

比较模式

此工具支持严格和基本比较模式(默认禁用严格模式)。严格模式还允许您比较不同行包装方法中的更改(例如,"\n" 等)。

📄 许可证

baraja-core/simple-php-diff 使用MIT许可证。有关更多详细信息,请参阅 LICENSE 文件。