【发布时间】:2009-04-10 05:09:10
【问题描述】:
对 PHP 执行此操作的最佳方法是什么?考虑到列内容可能非常大,是否有任何 PHP 函数可以做到这一点?
如果 PHP 函数不可用,我可以调用什么 shell 实用程序?
谢谢
【问题讨论】:
对 PHP 执行此操作的最佳方法是什么?考虑到列内容可能非常大,是否有任何 PHP 函数可以做到这一点?
如果 PHP 函数不可用,我可以调用什么 shell 实用程序?
谢谢
【问题讨论】:
【讨论】:
Text_Diff可以使用xdiff。 @hitautodestruct 您可以在以下位置找到示例:pear.php.net/manual/en/…
通常的过程是存储每个不同的修订版本并在用户想要查看它时计算差异,如果过程很昂贵,可能会缓存该输出。
您可以存储一个基本修订版,然后有一组差异可用于获取以前的版本。
在任何一种情况下,都需要做出让步;第一个选项使检索特定版本变得便宜,但代价是差异所需的更多处理;第二个使查看差异变得便宜,但代价是可能需要昂贵的增量补丁才能获得特定版本。
【讨论】:
如果内容很大,而且改动很小,可以考虑采用“reverse delta”的方法:只有最新版本的文本以全格式存储,之前的版本是一个差异从最新版本到以前的版本。
这会节省大量存储空间,但比较两个修改次数较多的版本,该过程的成本可能相当可观。毕竟,这始终是存储空间和处理要求之间的权衡。
如果您不能或不想使用 PEAR 和 PECL,您仍然可以使用 exec 调用的 diff 实用程序。我肯定会选择标准的差异格式,并且永远不会开发自己的。
【讨论】: