A tiny, easy-to-use standalone in-line and by-line diffing class with built-in HTML output. Includes Laravel bundle layer. Supports PHP 5.2+.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



QuickDiff is a text diffing class for PHP. It might not be very accurate but it's very easy to use and have two modes - finding changes by line or inline (within one line). It also comes with built-in HTML generation although you need to style it yourself with CSS.

It has no dependencies and works out of the box in PHP 5.2 and up - simply include it and you're ready to go.

Unless you're using Laravel QuickDiff is just a single file (quickdiff.php).

[ Method reference | Live example ]


require_once 'quickdiff.php';

echo QuickDiff::FullHtmlWrapped("line1\nline2", "line1\nKABOOM\nline2");
  //=> <pre class="qdiff">...</pre>
echo QuickDiff::FullHtmlWrapped("\bin\xA\ry\0u\tput", "line1\nKABOOM\nline2");
  //=> <p class="qdiff bin">Diff is unavailable for binary data.</p>
echo QuickDiff::InlineHTML("this plus that", "plus that and this");
  //=> <span class="add">this<i>&middot;</i></span>...

Laravel bundle

php artisan bundle:install quickdiff

After this insert the configuration from bundle.php into your application/bundles.php and use LaraQDiff class instead of QuickDiff - it will take into count options that you can configure in the bundle's config/*.php files.

This automatic configuration is the only difference between standalone QuickDiff and LaraQDiff.