我有这些数组:
<?php
// New
$array1 = array(
array(
'g_id' => '1',
'g_title' => 'Root Admin',
'g_perm_id' => '1',
'g_bitoptions' => '0'
),
array(
'g_id' => '2',
'g_title' => 'Member',
'g_perm_id' => '2',
'g_bitoptions' => '32'
),
array(
'g_id' => '3',
'g_title' => 'Banned',
'g_perm_id' => '3',
'g_bitoptions' => '0'
)
);
// Old
$array2 = array(
array(
'g_id' => '1',
'g_title' => 'Admin',
'g_perm_id' => '1',
'g_bitoptions' => '0'
),
array(
'g_id' => '2',
'g_title' => 'User',
'g_perm_id' => '2',
'g_bitoptions' => '0'
),
array(
'g_id' => '4',
'g_title' => 'Validating',
'g_perm_id' => '4',
'g_bitoptions' => '0'
)
);
我想要的是它们之间的HTML视觉差异,如下图所示: diff http://imageshack.us/a/img519/3237/diffe.png
这里的任何人都知道这样做的第三方课吗?我一直在看一些,但他们都没有。 = /
提前谢谢。
答案 0 :(得分:1)
这可能与您的问题没有直接关系。 如果您检查链接中的示例图像,我担心突出显示的区域是由javascript和/或而不是PHP定义的:对齐:因为您不能告诉简单的diff()算法以这种方式突出显示。
所以,尝试这样的事情:
当您在浏览器中“打印”某些内容时,请将属性指定为颜色,例如
<php code>
<div class="red">blah blah blah</div>
<div class="green">blah blah blah</div>
</php code>
php代码应该只在服务器端执行一项操作:查找不同的部分,以便生成相应的类属性。
抱歉,目前我没有时间给你写一个解决方案。
总之,执行是这样的:
我确信这样做。这样做的一个好处就是你可以随意控制屏幕上的外观。
使用当然可以在服务器端执行所有操作,即将所有样式与其他html标记一起硬编码
答案 1 :(得分:0)
看看PEAR Text_Diff。用法显示在http://www.hawkee.com/snippet/2238/
然后创建var_export($ array1,TRUE)和var_export($ array2,TRUE)的文本差异,您将获得所需的输出。
PS。根据Text_Diff项目页面:“此软件包已被取代,但仍然针对错误和安全修复程序进行维护。软件包已移至渠道pear.horde.org,软件包Horde_Text_Diff。”