File: README.md

Recommend this page to a friend!
  Classes of Manuel Lemos   JS Diff Viewer   README.md   Download  
File: README.md
Role: Example script
Content type: text/markdown
Description: Basic instructions
Class: JS Diff Viewer
Find and view the difference between text strings
Author: By
Last change:
Date: 7 years ago
Size: 1,741 bytes
 

Contents

Class file image Download

PHP Diff

Diff is the abbreviation of difference. It is also the name of Unix/Linux utility program that is able to compare two text files and shows the lines that differ between them.

This class implements the same functionality of the diff commmand, except that it is written in pure PHP, i.e. it does not require any external programs or other PHP classes or scripts.

Text Difference

You can compute the difference between two strings either line by line, word by word or character by character.

In the case of finding differences between words or lines, you would compare arrays of strings with the words or lines of the text.

PHP Find Difference Between Two Strings

require('diff.php');

$before = 'Some text before';
$after = 'This is the text after';

You can set the text mode option depending on whether you want to compare text character by character ('c'), word by word ('w') or line by line ('l').


$mode = 'w';

$diff = new diff_class;

The class returns a difference object that contains the list of differences between the two strings, as well may return a list of patch operations to transform one string in to the other.


if($diff->Diff($before, $after, &$difference))
  die('Diff error: '.$diff->error;);
  

PHP Text Diff Highlight

If you want to highlight the differences between two strings in a Web page you can use the FormatDiffAsHtml function instead, so it returns the first string with <ins> and <del> tags showing what excepts of the string should be removed or added to turn it into the second string.

if($diff->FormatDiffAsHtml($before, $after, $difference)
    die('Diff error: '.$diff->error;);
echo '<div>', $difference->html, '</div>';