0
我已阅读并尝试过所有答案here,但它们似乎只适用于非二进制格式的字符串。我想比较二进制文件的差异,并返回那些格式,如这样的:用PHP返回二进制文件中的十六进制差异
[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
是不是正确的扩展名是用于此?我不确定。
不错的想法,但是当我尝试使用它与'exec()'例如我得到一个错误:'sh:-c:line 0:语法错误附近的意外令牌'''' – Devon 2014-10-07 01:25:00
@Devon因为它是* bash *单行,并且你的系统默认为''sh'作为'exec()'。 – Sammitch 2014-10-07 16:40:13