baraja-core / simple-php-diff
此包的最新版本(v1.0.3)没有提供许可信息。
在PHP中快速查找两个文本文件之间的差异。
v1.0.3
2022-05-30 13:55 UTC
Requires
- php: ^8.0
Requires (Dev)
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.0
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-nette: ^1.0
- phpstan/phpstan-strict-rules: ^1.0
- roave/security-advisories: dev-master
- spaze/phpstan-disallowed-calls: ^2.0
This package is auto-updated.
Last update: 2024-09-07 16:16:15 UTC
README
在PHP中快速查找两个文本文件之间的差异。
想法
该库可以非常快速地比较两个文本文件,并返回包含差异的对象。
差异以编号行呈现,便于用户查看变化。您还可以在浏览变化时,从 Diff
对象中按整数数组读取已更改的行。
📦 安装
建议使用 Composer 进行安装,您也可以在 Packagist 和 GitHub 上找到此包。
要安装,请使用以下命令
$ composer require baraja-core/simple-php-diff
您可以通过创建内部类的实例来手动使用该包,或者注册DIC扩展将服务直接链接到Nette框架。
示例
Diff可以渲染为HTML(使用本地方法 SimpleDiff::renderDiff($diff)
)
如何使用
只需创建一个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 文件。