科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件用PHP和PEAR比较文件内容提交输出

用PHP和PEAR比较文件内容提交输出

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

作者:builder.com.cn 2007年4月12日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

增加输出结果的可读性

现在,除非你在解码diff结果方面拥有丰富经验,上述的输出结果并不是特别容易理解。因此Text_Diff提供许多选项,把这个输出重新格式化为更容易读取的格式。这些选项包含在Text_Diff_Renderer()对象的子类中,通过它们可以用统一的或内置的格式查看比较结果。

下面的脚本(列表D)对前面的例子进行了一些修改,以说明统一格式:

列表D

<html>

<head></head>

<body>

<pre>

<?php

// adjust file paths as per your local configuration!

include_once "Text/Diff.php";

include_once "Text/Diff/Renderer.php";

include_once "Text/Diff/Renderer/unified.php";

// define files to compare

$file1 = "data1.txt";

$file2 = "data2.txt";

// perform diff, print output

$diff = &new Text_Diff(file($file1), file($file2));

$renderer = &new Text_Diff_Renderer_unified();

echo $renderer->render($diff);

?>

</pre>

</body>

</html>

注意在初始化renderer时调用了适当的子类。

以下为输出结果:

@@ -1,8 +1,12 @@

apple

-banana

+bat

cantaloupe

drumstick

enchilada

fig

-grape

-horseradish

+peach

+pear

+

+

+

+zebra

这里有必要简单说明一下:在统一格式中,加号(+)前缀表示增加的行,减号(-)前缀表示删除的行,没有前缀则表示行没有变化。将上面的输出结果与原始文件进行比较,很容易看出diff如何反映哪一行发生变化,以及变化的内容。

当然,你还可以使输出结果更加易于理解——这正是内置格式的任务。这种格式使用删除线直观显示哪些字符和行发生变化。列表E说明了它的用法。

列表E

<html>

<head></head>

<body>

<pre>

<?php

// adjust file paths as per your local configuration!

include_once "Text/Diff.php";

include_once "Text/Diff/Renderer.php";

include_once "Text/Diff/Renderer/inline.php";

// define files to compare

$file1 = "data1.txt";

$file2 = "data2.txt";

// perform diff, print output

$diff = &new Text_Diff(file($file1), file($file2));

$renderer = &new Text_Diff_Renderer_inline();

echo $renderer->render($diff);

?>

</pre>

</body>

</html>

以下为输出结果:

apple
bananabat
cantaloupe
drumstick
enchilada
fig
grape
horseradishpeach
pear

zebra

以上就是本教程的全部内容。希望现在你已经清楚了解如何在PHP环境中使用Text_Diff迅速有效地比较文件内容,以及通过格式化输出结果来增强可读性。祝编码快乐!

责任编辑:德东

查看本文国际来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章