Как на PHP получить построчную разницу между двумя файлами или строками

Довольно часть встречается задача: взять два файла или строки, сравнить их построчно и отобразить разницу. И конечно же это можно решить стандартными средствами PHP! Для PHP создано расширение xdiff, которое позволяет создавать и накатывать патч-файлы, содержащие различия между различными версиями файлов или документов. В основе этого расширения лежит библиотека libxdiff.

Расширение может работать со строками или с файлами, а также имеет два разных формата патчей — унифицированный и бинарный. Унифицированные патчи подходят для текстовых файлов и удобны для чтения человеком. Для бинарных файлов, таких как архивы или изображения, нужно использовать бинарный формат, так как он корректно обрабатывает непечатные символы.

Установка и примеры использования php xdiff

yum install php-xdiff -y
$diff = xdiff_string_diff($old_content, $new_content, 1);
$content = xdiff_string_patch($old_content, $diff, XDIFF_PATCH_NORMAL, $errors);

Как видите, всё достаточно просто и банально, а комментарии излишни. Больше подробностей можно найти в официальной документации PHP.