Php 在应用差异修补程序之前验证差异修补程序
我正在寻找一个可移植的diff库(没有Pear,没有php非广泛支持的扩展,比如xdiff),它允许我为更新机制进行文件修补。我使用的diff文件使用的是统一格式 我发现class.simplediff.php witch非常好(即使它不支持开箱即用的文件,也只需要在字符串中加载一个文件) 但问题是,我无法找到一种方法来验证是否所有的替换都能够成功处理Php 在应用差异修补程序之前验证差异修补程序,php,diff,patch,auto-update,Php,Diff,Patch,Auto Update,我正在寻找一个可移植的diff库(没有Pear,没有php非广泛支持的扩展,比如xdiff),它允许我为更新机制进行文件修补。我使用的diff文件使用的是统一格式 我发现class.simplediff.php witch非常好(即使它不支持开箱即用的文件,也只需要在字符串中加载一个文件) 但问题是,我无法找到一种方法来验证是否所有的替换都能够成功处理 您是否知道一个库,它允许在应用差异修补之前对其进行验证,或者您对如何进行验证有什么线索?我想不出一种方法来判断修补程序是否有效——也就是说,从逻
您是否知道一个库,它允许在应用差异修补之前对其进行验证,或者您对如何进行验证有什么线索?我想不出一种方法来判断修补程序是否有效——也就是说,从逻辑上说。但是,如果您的修补程序源被认为是“安全的”,您可以通过执行以下操作来检查它是否至少是有效的语法:
PHP file.PHP
)如果修补程序的源代码不安全,您可能不想这样做,因为执行任意PHP可能会导致有人控制您的机器。我已将修补程序.c代码翻译为PHP: c代码本身有点凌乱,PHP代码也是如此。hunk验证是有效的,但它并不像我需要的那样“安全”——这就是为什么它不是我想要的答案,但它可能会帮助其他人 编辑: 我写了一些东西。我还不确定它是否100%可靠,但就“以只读方式验证以确保补丁成功应用”而言,目前的结果确实不错:
希望它能帮助某些人:)好吧,当使用unix补丁命令时,您可能会出现“Hunk failed”错误。这就是我想检查的。。。因为如果无法进行替换,通常不会从语法上破坏代码。