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.
- PHP 5.3.0 or later
- Tidy extension for PHP
Add Htmldiff to your composer.json
file:
"require": {
"gathercontent/htmldiff": "0.2.*"
}
Get composer to install the package:
$ composer update gathercontent/htmldiff
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>
Run unit tests:
$ ./vendor/bin/phpunit
Test compliance with PSR2 coding style guide:
$ ./vendor/bin/phpcs --standard=PSR2 ./src
The MIT License (MIT) - see README.md