Возвращает шестнадцатеричные различия в двоичных файлах с переполнением стека

Я прочитал и попробовал каждый ответ Вот, все же они, кажется, применяются только к строкам в недвоичных форматах. Я пытаюсь сравнить различия в двоичных файлах и вернуть их в таком формате:

[file1]

-0001010: ac 0f 00 00 01 00 00 00 48 65 6c 6c 6f 2c 20 77  ........Hello, w

[file2]

+0001010: ac 0f 00 00 01 00 00 00 48 75 6c 6c 6f 2c 20 77  ........Hullo, w

xdiff отлично работает для создания патчей bdiff и файла патчей — я смотрю слишком, чтобы проиллюстрировать различия.

$one = 'one'; // original file
$two = 'two'; // updated file
$pat = 'dif'; // bdiff patch
$new = 'new'; // new destfile

xdiff_file_diff_binary($one, $two, $pat);
xdiff_file_patch_binary($one, $pat, $new);

$diff = xdiff_file_diff($one, $two, 1);
if (is_file($diff)) {
echo "Differences:\n"; // result = 1
echo $diff;
}

Может быть xdiff не правильное расширение, чтобы использовать для этого? Я не уверен.

0

Решение

Звучит как большая боль в прикладе в PHP, могу ли я предложить следующий bash one-liner?

diff <(hexdump -C file1) <(hexdump -C file2)

Выход:

10c10
< 00000090  35 35 61 34 32 62 62 31  30 33 31 62 38 38 39 34  |55a42bb1031b8894|
---
> 00000090  35 35 61 34 32 62 62 31  30 33 31 61 38 38 39 34  |55a42bb1031a8894|

И вы всегда можете связываться с опциями diff а также hexdump,

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector