PackageTrack
Sign in Get early access

caxy/php-htmldiff

A library for comparing two HTML files/snippets and highlighting the differences using simple HTML.

v0.1.17 23M downloads/mo #1039 most downloaded on Packagist caxy/php-htmldiff

What this package is like to depend on

Last release 1 years ago

16 May 2025

Release timing varies

gaps range from 4 weeks to 1.9 years

Nearly every release is documented

notes for 32 of 32 stable releases

Nothing withdrawn

no release was ever pulled

12 years old

33 releases · first in 2014

0 releases in the last 12 months

see the full history below

Release timeline

33 releases · Jul 2014 to May 2025
2015 2017 2019 2021 2023 2025
Release Pre-release

Releases

latest 33
  1. v0.1.17 16 May 2025
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v0.1.16...v0.1.17

    Open source →
  2. v0.1.16 22 Jan 2025
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v0.1.15...v0.1.16

    Open source →
  3. v0.1.15 05 Nov 2023
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v0.1.14...v0.1.15

    Open source →
  4. v0.1.14 19 Jan 2022
    Release notes

    v0.1.14 (2022-01-19)

    Full Changelog

    Changes:

    This release mainly removed everything that is related to the concept of special-case-tags. This was adopted from the
    original library by rashid2538 that this fork is based on.

    The feature tried to wrap the special tags in an extra <ins / del class='mod'> tag.
    However, this never really worked properly (the closing tag was not always added to the diff output) and usually ended up crippling the HTML.

    Given the feature never really worked, and there is no clear use-case for it, I decided to remove it and fix
    issue 106 and issue 69 in the process where it was sometimes impossible to diff html that contained these special tags or unexpected extra tags got added to the output.

    In case you really needed this feature, please open an issue explaining your use-case, in that case this decision can be revisited.

    • Deprecated all setSpecialCaseTags() config calls. There is no replacement, but the current expectation is that nobody ever used these calls anyway.
    • Fixed Issue 106 / 69 by removing special-case-tags from the codebase
    • Reduced the CRAP score of insertTag() by allot
    Open source →
    Release notes

    Full Changelog

    Changes:

    This release mainly removed everything that is related to the concept of special-case-tags. This was adopted from the original library by rashid2538 that this fork is based on.

    The feature tried to wrap the special tags in an extra <ins / del class='mod'> tag. However, this never really worked properly (the closing tag was not always added to the diff output) and usually ended up crippling the HTML.

    Given the feature never really worked, and there is no clear use-case for it, I decided to remove it and fix issue 106 and issue 69 in the process where it was sometimes impossible to diff html that contained these special tags or unexpected extra tags got added to the output.

    In case you really needed this feature, please open an issue explaining your use-case, in that case this decision can be revisited.

    • Deprecated all setSpecialCaseTags() config calls. There is no replacement, but the current expectation is that nobody ever used these calls anyway.
    • Fixed Issue 106 / 69 by removing special-case-tags from the codebase
    • Reduced the CRAP score of insertTag() by allot
    Open source →
  5. v0.1.13 27 Sep 2021
    Release notes

    v0.1.13 (2021-09-27)

    Full Changelog

    Changes:

    • Add .gitattributes file to exclude demo and tests from the exported zip package to reduce package size when installed via composer (#86 - @danepowell )
    Open source →
    Release notes

    Full Changelog

    Changes:

    • Add .gitattributes file to exclude demo and tests from the exported zip package to reduce package size when installed via composer (#86 - @danepowell). This means demo/ and tests/ will no longer be included in the installed package files. In theory this shouldn't be a breaking change, but it could be if you are depending on or referencing any files from those directories.
    Open source →
  6. v0.1.12 05 Apr 2021
    Release notes

    Full Changelog

    Changes:

    • Word parser is rebuild to improve performance by 98% (according to xhprof profiler) and reducing code complexity.
    • Whitespace checking improvements in match finding algorithm to improve performance by allot, up to 50% in some of my testing
    Open source →
  7. v0.1.11 02 Feb 2021
    Release notes

    Full Changelog

    Changes:

    • Fixed a bug where self-closing tags got crippled in HtmlDiff
    • Ported ListDiff from SimpleXML to DOMDocument
    • Cleanup of old list diff algorithm
    • Possibility to disable html-purifier using a config flag
    • Removed dependency php-simple-html-dom-parser
    Open source →
  8. v0.1.10 05 Jan 2021
    Release notes

    Full Changelog

    Important:

    In order to be compatible with PHP8 we had to upgrade some vendor packages.

    Since these vendor packages have dropped support for older versions of PHP we had todo the same, therefore this version is not compatible anymore with PHP versions prior to 7.3.

    In case you are not able to upgrade your PHP version, please pin version v0.1.9 of php-htmldiff in your composer config.

    Changes:

    • Fixed the keywords that made this version incompatible with PHP8
    • Upgraded PHPUnit dependencies with a PHP8 compatible version
    Open source →
  9. v0.1.9 20 Feb 2019
    Release notes

    v0.1.9 (2019-02-20)

    Full Changelog

    Merged pull requests:

    Open source →
    Release notes

    Full Changelog

    Merged pull requests:

    Open source →
  10. v0.1.8 15 Jan 2019
    Release notes

    v0.1.8 (2019-01-15)

    Full Changelog

    Implemented enhancements:

    Closed issues:

    • Does not work on PHP 7.3 #79
    Open source →
    Release notes

    Full Changelog

    Implemented enhancements:

    • Possible diff algorithm improvement #46
    • encoding #22
    • Resolve PHP 7.3 compatibility issue to fix #79 #80 (irkallacz)

    Closed issues:

    • Does not work on PHP 7.3 #79
    • Latest release can cause segmentation faults #74
    • Different results #73
    Open source →
  11. v0.1.7 15 Mar 2018
    Release notes

    Full Changelog

    Fixed bugs:

    • Fix issues with unicode characters - fixes #71 #72 (iluuu1994)

    Closed issues:

    • Encoding issues with umlauts #71
    • Slow diff even on small text input #70
    Open source →
  12. v0.1.6 06 Jan 2018
    Release notes

    Full Changelog

    Closed issues:

    • Bug - bad comparison between words containing accented characters #66

    Merged pull requests:

    • Fixed warnings "count(): Parameter must be an array... #65 (yojick)
    Open source →
  13. v0.1.5 12 Jun 2017
    Release notes

    Full Changelog

    Fixed bugs:

    • Crashes if string contains "Р" character (uppercase cyrillic Р letter) #58

    Closed issues:

    • Does not work on PHP 5.3.10 #61

    Merged pull requests:

    Open source →
  14. v0.1.4 02 May 2017
    Release notes

    Full Changelog

    Merged pull requests:

    • changes the [] arrays to array() as it does not work in php 5.3 #62 (myfriend12)
    Open source →
  15. v0.1.3 21 Jul 2016
    Release notes

    Full Changelog

    Implemented enhancements:

    Closed issues:

    • Performance #38

    Merged pull requests:

    • Differ crashed when comparing regular space character in table column. #55 (SavageTiger)
    Open source →
  16. v0.1.2 25 May 2016
    Release notes

    Full Changelog

    Implemented enhancements:

    • Diff styling for the demo #45
    • Implement new List Diffing algorithm for matching #49 (jschroed91)
    • Improve list diffing for lists with removed list items #48 (jschroed91)
    • Cleanup CSS and add styles for highlighting differences (#45) #47 (jschroed91)
    • Add method to clear content on AbstractDiff objects #44 (jschroed91)
    • Add support for diffing img elements #36 (jschroed91)

    Fixed bugs:

    Closed issues:

    • Config object not properly used when using the HtmlDiffBundle service #51

    Merged pull requests:

    • Remove unused ListDiff class and rename ListDiffNew to ListDiff #43 (jschroed91)
    • Run php-cs-fixer on lib directory #42 (jschroed91)
    Open source →
  17. v0.1.1 16 Mar 2016
    Release notes

    Full Changelog

    Implemented enhancements:

    Merged pull requests:

    • Update the README and add additional documentation #34 (jschroed91)
    Open source →
  18. 0.1.0 10 Mar 2016
    Release notes

    Full Changelog

    Implemented enhancements:

    • Detecting link changes #28
    • Allow the list match threshold percentage (ListDiff::$listMatchThreshold) to be configured #18
    • Allow $isolatedDiffTags to be configured on HtmlDiff #13
    • Create configuration class for HtmlDiff config options #32 (jschroed91)

    Merged pull requests:

    • Allow caching of the calculated diffs using a doctrine cache provider #33 (jschroed91)
    Open source →
  19. 0.1.0-beta.1 26 Feb 2016 pre-release
    Release notes

    Full Changelog

    Merged pull requests:

    Open source →
  20. 0.0.14 03 Feb 2016
    Release notes

    Full Changelog

    Fixed bugs:

    • Fix HtmlDiff matching logic skipping over single word matches #25 (jschroed91)
    Open source →
  21. 0.0.13 12 Jan 2016
    Release notes

    Full Changelog

    Fixed bugs:

    • Misc. list diffing updates and fixes #24 (jschroed91)
    • Updated list diff class to maintain the tags on lists. #23 (adamCaxy)
    Open source →
  22. 0.0.12 11 Nov 2015
    Release notes

    Full Changelog

    Fixed bugs:

    Open source →
  23. 0.0.11 06 Nov 2015
    Release notes

    Full Changelog

    Merged pull requests:

    Open source →
  24. 0.0.10 21 Oct 2015
    Release notes

    Full Changelog

    Fixed bugs:

    • Fix: Updated code so that null is not given in list formatting. #17 (adamCaxy)
    Open source →
  25. 0.0.9 20 Oct 2015
    Release notes

    Full Changelog

    Fixed bugs:

    • Missed an array_column in ListDiff. Updated to use ArrayColumn function. #16 (jschroed91)
    Open source →
  26. 0.0.8 20 Oct 2015
    Release notes

    Full Changelog

    Fixed bugs:

    • Added update for php versions that do not have array_column as a function. #15 (jschroed91)
    Open source →
  27. 0.0.7 20 Oct 2015
    Release notes

    Full Changelog

    Implemented enhancements:

    • Created ListDiff class to handle diffing of lists. #14 (adamCaxy)
    Open source →
  28. 0.0.6 11 Sep 2015
    Release notes

    Full Changelog

    Implemented enhancements:

    • ICC-4313 | ICC-4314 | Replace Special HTML Elements with placeholder tokens and update diffing logic #11 (usaqlein)

    Merged pull requests:

    Open source →
  29. 0.0.5 03 Mar 2015
    Release notes

    Full Changelog

    Implemented enhancements:

    Open source →
  30. 0.0.4 09 Jan 2015
    Release notes

    Full Changelog

    Fixed bugs:

    • Check for empty oldText or newText before processing del or ins in processReplaceOperation #9 (jschroed91)
    Open source →
  31. 0.0.3 08 Jan 2015
    Release notes

    Full Changelog

    Implemented enhancements:

    • Add option to insert a space between del and ins tags #8 (jschroed91)
    • Updated demo to accept input and diff on the fly #5 (jschroed91)
    Open source →
  32. 0.0.2 12 Aug 2014
    Release notes

    Full Changelog

    Implemented enhancements:

    • Break out HTML content to individual HTML, CSS, JS files #6 (mgersten-caxy)

    Fixed bugs:

    • Fix error caused when passing empty array into setSpecialCaseTags #7 (jschroed91)
    Open source →
  33. 0.0.1 31 Jul 2014
    Release notes

    Implemented enhancements:

    • Added static properties for the default config variables #4 (jschroed91)
    • Added option to group together diffed words in output #2 (jschroed91)

    Merged pull requests:

    * This Change Log was automatically generated by github_changelog_generator

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive