Xdiff
14 July 2008
Comments
XDiff to rozszerzenie do php umożliwiające generowanie diffów - określania różnic pomiędzy dwoma łańcuchami (plikami). Diffy są często stosowane w skryptach wiki czy tyczących się zarządzania projektami do pokazywania różnic kodu dla różnych wersji danej aplikacji. To rozszerzenie ma tą zaletę że jest rozszerzeniem binarnym - jest szybsze od odpowiedników napisanych w PHP, oraz druga sprawa - jest proste w użyciu.Instalacja Linux/Unix
- Pobierz bibliotekę libxdiff (link) lub sprawdź czy ewentualnie jest w repozytorium twojej dystrybucji (mało popularna)- Kompilacja standardowa (./configure --prefix=/usr && make && make install)
- Pobierz rozszerzenie z PECL (link na początki)
) - Kompilacja standardowa (phpize && ./configure && make && make install)
- w php.ini dodaj extension="xdiff.so"
Używanie
$diff = xdiff_string_diff($stary_string, $nowy_string);
Zwróci łańcuch zawierający te elementy łańcucha, w którym nastąpiły zmiany.<?php
$old_article = file_get_contents('plik1.txt');
$new_article = file_get_contents('plik2.txt');
$diff = xdiff_string_diff($old_article, $new_article);
if (is_string($diff))
{
$diff = explode("
", $diff);
$new = explode("
", $new_article);
$old = explode("
", $old_article);
foreach($new as $key => $r)
{
IF(in_array('+'.$r, $diff))
{
echo '<font color="blue">+'.$r.'</font><BR>';
}
else
{
echo $r.'<BR>';
IF(substr($diff[$key], 0, 1) == '-')
{
echo '<font color="red">'.$diff[$key].'</font><BR>';
}
}
}
}
RkBlog
Comment article