icap / html-diff
该软件包最新版本(v1.1.0)没有可用的许可信息。
一个用于比较HTML文件的PHP5库。
v1.1.0
2016-02-17 16:35 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-23 16:07:57 UTC
README
一个用于比较HTML文件的PHP5库。
实际上,这个库是PHP的daisy-diff库的移植,可以在此处找到gitgub,符合PSR-4标准。该库于2008年开发,今天被许多维基平台(维基百科、维基枢纽、游戏维基等)使用。它是MediaWiki软件包的一部分。
设置
要求
- PHP >=5.3.0
- Pimple 1.0.*
- Silex 1.0.*
安装
安装HtmlDiff最简单的方法是使用以下要求的Composer
{ "require": { ... "icap/html-diff": ">=1.0.1" } }
或者,您可以下载存档并将src/文件夹添加到PHP的include路径
set_include_path('/path/to/src' . PATH_SEPARATOR . get_include_path());
用法
要找到并渲染两个HTML块之间的差异,您需要包含HtmlDiff类
use Icap\HtmlDiff\HtmlDiff;
然后使用以下属性初始化一个新的HtmlDiff类对象
- 旧的HTML文本/块(String)
- 新的HTML文本/块(String)
- 是否启用或禁用格式更改的选项(Boolean)(如果除了添加和删除之外,您还想显示节点/元素的不同样式修改,请将此设置为true)
然后调用类中的outputDiff函数以检索具有比较版本和修改的结果。
$htmlDiff = new HtmlDiff($oldText, $newText, true); $out = $htmlDiff->outputDiff(); //Then $out->toString();//to get the compared version //And $out->getModifications();//to retrieve the number of differences/modifications between the two blocks.
输出是一个ChangeText
您始终可以参考演示/示例以获取更多帮助。在提供的示例中,我们使用两种不同的样式来渲染比较后的HTML结果。您可以根据需要在您的应用程序中复制和使用这些样式。
与原始库相比的修改
- 在ChangeText对象中添加了一个新属性(修改),用于计算两个文本之间找到的差异。这些差异以数组的形式给出('added' => #, 'changed' => #, 'removed' => #)
- 删除了详细信息提示
- 替换了HtmlDiff模块使用的所有MediaWiki通用函数(定义在此处)为一些简单的/虚拟的函数,以便模块可以正常运行。
- 为了符合WAI标准,在转换后的HTML输出中,将所有'added'和'deleted' span标签分别替换为'ins'和'del'标签。
测试
由于该库是已测试的(希望如此)库的移植,因此没有创建或执行测试。
已知问题
有一个关于表格比较的已知问题,可以在此处报告。尽管它引用的是库的Java版本,但相同的问题也存在于PHP版本。