科技行者

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

知识库

知识库 安全导航

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

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

  • 扫一扫
    分享文章到微信

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

本教程将举例说明这个类的用法,阐明如何使用它动态比较PHP文件内容,并以网页的形式提交结果。这里我假设你应用一个Apache和PHP环境,并且已经正确安装PEAR Text_Diff类。

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

关键字: PHP

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

在本页阅读全文(共19页)

在UNIX中,如果有必要比较两个或多个文本文件,许多开发者借助于diff程序。几乎所有UNIX产品都默认提供这个程序,它逐行比较文件内容,并以各种输出格式显示文件间的差异。

虽然diff最初(现在仍然)是一个命令行实用工具,但大多数开发环境和语言,包括Perl、JSP和PHP都包含复制其功能的软件包。因此我们将讨论Text_Diff——一个在PHP环境中比较文件内容并以各种格式提交输出结果的PEAR类。

本教程将举例说明这个类的用法,阐明如何使用它动态比较PHP文件内容,并以网页的形式提交结果。这里我假设你应用一个Apache和PHP环境,并且已经正确安装PEAR Text_Diff类。

注:你可以下载,或使用这里提供的用法说明,直接从网络上安装PEAR Text_Diff软件包。

创建测试文件

在编写任何代码前,有必要创建我们在本教程中用到的测试文件。这是两个简单的文件,我们在其中有意添加了几个Text_Diff应该能够发现的差异。列表A是第一个文件——data1.txt。

列表A

apple

banana

cantaloupe

drumstick

enchilada

fig

grape

horseradish

列表B是第二个文件——data2.txt。

列表B

apple

bat

cantaloupe

drumstick

enchilada

fig

peach

pear

zebra

进行基本的比较

建立测试文件后,首先我们简单说明Text_Diff的用法。先从列表C的脚本开始:

列表C

<?php

// adjust file paths as per your local configuration!

include_once "Text/Diff.php";

include_once "Text/Diff/Renderer.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();

echo $renderer->render($diff);

?>

初看起来,这段脚本相当简单。在Text_Diff软件包中有两个基本的类:Text_Diff(),它执行比较并返回diff输出;和Text_Diff_Renderer(),它把diff输出格式化成一个易于理解的格式。特别要指出的是,Text_Diff()对象必须用进行比较的两个文件的内容(而不是位置)进行初始化。

上述脚本首先初始化这两个对象,利用PHP的file()函数把每个文件的内容提取成一系列的数组。然后用Text_Renderer()对象以标准的diff格式提交输出,生成任何UNIX开发者都熟悉的结果:

2c2

<banana

---

>bat

7,8c7,12

<grape

<horseradish

---

>peach

>pear

>zebra

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

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

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