cogpowered/finediff

此包已被放弃,不再维护。没有建议的替代包。

PHP实现的细粒度Diff引擎

0.3.1 2014-05-19 10:25 UTC

This package is auto-updated.

Last update: 2022-02-06 09:13:02 UTC


README

** 项目存档:请使用 https://github.com/d4h/php-finediff **

FineDiff

最初由Raymond Hill编写(https://github.com/gorhill/PHP-FineDiff),FineDiff已被调整以适应现代世界。这意味着有文档、格式良好、易于扩展的代码。

Build Status

安装

Composer

使用FineDiff的首选方法是通过Composer

将以下内容添加到您的composer.json文件中

{
    "require": {
        "cogpowered/finediff": "0.3.*"
    }
}

升级

0.3.x引入了一个不兼容的版本,所以如果您已存储操作码,请不要升级!

0.3.x修复了双重编码问题,导致生成的操作码比所需的更长。

用法

渲染HTML

将两个字符串之间的差异渲染为HTML

$diff = new cogpowered\FineDiff\Diff;
echo $diff->render('string one', 'string two');

这将输出以下内容

string <ins>tw</ins>o<del>ne</del>

您可以将粒度更改为cogpowered\FineDiff\Granularity\Word,以便输出为

string <del>one</del><ins>two</ins>

您可以通过将其传递给Diff构造函数来完成此操作

$granularity = new cogpowered\FineDiff\Granularity\Word;
$diff        = new cogpowered\FineDiff\Diff($granularity);

抓取操作码指令

操作码指令是告诉FineDiff如何将一个字符串转换为另一个字符串的指令。

$diff = new cogpowered\FineDiff\Diff;
echo $diff->getOpcodes('string one', 'string two');

这将输出以下内容

c7d3i3:two

使用操作码渲染文本

$render = new cogpowered\FineDiff\Render\Text;
echo $render->process('string one', 'c7d3i3:two');

将输出以下内容

string two

与HTML相同

$render = new cogpowered\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

许可协议:MIT许可证

在此特此授予任何人无限制地获取本软件及其相关文档文件(“软件”)的副本的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向提供软件的个人授予此类权利,但受以下条件约束:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论是基于合同、侵权或其他法律理论,无论是否源于、因之而起或与之相关软件或其使用或操作。