gathercontent / htmldiff
Compare two HTML strings
0.2.1
2015-04-15 15:39 UTC
Requires
- ext-tidy: *
- cogpowered/finediff: 0.3.1
Requires (Dev)
- phpunit/phpunit: 4.*
- squizlabs/php_codesniffer: 1.*
This package is not auto-updated.
Last update: 2024-11-05 03:01:45 UTC
README
Compare two HTML strings. This library converts HTML into a form that can be diffed using the algorithm found in Git or Linux (comparing entire lines of code) to achieve greater accuracy, then decodes it back into a valid HTML.
Requirements
- PHP 5.3.0 or later
- Tidy extension for PHP
Installation
Add Htmldiff to your composer.json
file:
"require": { "gathercontent/htmldiff": "0.2.*" }
Get composer to install the package:
$ composer update gathercontent/htmldiff
Usage
The input is going to be parsed by Tidy before diffing. Here's a few examples:
$old = '<span>This is a string</span>'; $new = '<span>This is a text</span>'; $htmldiff = new Htmldiff; $result = $htmldiff->diff($old, $new); // result: <span>This is a <del>string</del><ins>text</ins></span>
$old = '<p>Hello world, how do you do</p>'; $new = '<p>Hello world, how do <strong>you</strong> do</p>'; $htmldiff = new Htmldiff; $result = $htmldiff->diff($old, $new); // result: <p>Hello world, how do <del>you</del><strong><ins>you</ins></strong> do</p>
$old = '<p>Hello world</p><p>How do you do</p>'; $new = '<p>Hello world</p><ul><li>first point</li><li>second point</li></ul><p>How do you do</p>'; $htmldiff = new Htmldiff; $result = $htmldiff->diff($old, $new); // result: <p>Hello world</p><ul><li><ins>first point</ins></li><li><ins>second point</ins></li></ul><p>How do you do</p>
Testing
Run unit tests:
$ ./vendor/bin/phpunit
Test compliance with PSR2 coding style guide:
$ ./vendor/bin/phpcs --standard=PSR2 ./src
Licence
The MIT License (MIT) - see README.md