频道直达
八强网 > 实务 > 编程语言 > 正文阅读
关键词

利用PHP和PEAR动态创建和编辑TAR文档

www.8tops.com 2007-10-13 11:42:05   发布:站长资讯
媒体:开发者在线  作者:开发者在线
        如果你曾为你的UNIX系统下载过widget,那么你肯定遇到过TAR压缩文件。在UNIX系统中磁带归档文件格式常用于打包多个文件,以便于分发。

这种格式的流行不仅由于在所有UNIX系统中都存在该格式的创建工具,还因为在实际应用中,它便于保存归档文件的目录结构、许可信息、用户和组信息等。

PHP中有大量的内建函数和可连接的扩展库,可用于几乎所有文件格式。特别是它可以通过PEAR的Archive_Tar类读取和创建TAR文档。在本文中,我们将向你说明这个类的行为,并演示开发人员是如何利用它动态地创建,编辑和显示TAR文档。

在这里我将假设你有一个工作数据库和安装了PHP,并且正确的安装了PEAR的Archive_Tar类。

注:你可以直接从网上安装PEAR 的Archive_Tar类包,或者从网上下载安装。

创建TAR文档

让我们从一个简单的例子开始:动态创建包含几个文件的TAR文档。使用下面的脚本:
列表 A

<php
include ("Archive/Tar.php");// import class

$obj = new Archive_Tar("dummy.tar"); // name of archive

$files = array("mystuff/ad.gif",
"mystuff/alcon.doc",
"mystuff/alcon.xls"); // files to store in archive

if ($obj->create($files)) {
echo "Created successfully!";
} else {
echo "Error in file creation";
}
>

这个脚本相当简单,但是还是值得具体看一下:

首先,创建Archive_Tar类的一个实例,初始化创建文档的路径和文件名。在本例中,文件名是dummy.tar,存于当前目录。

其次,列出归档的所有文件,包括它们的磁盘地址,存于一个PHP数组中。脚本(更准确的说是运行脚本的用户)必须拥有访问这些磁盘地址的许可权,否则文档创建过程就会失败。

最后,creat()方法将所有的文件压缩到单个TAR文档。这个方法接受输入的文件名数组,返回一个布尔值表明文档是否成功创建。记住脚本必须拥有将文件写入命名磁盘地址的许可权,否则,creat()方法就无法使用,文档创建就会失败。

应用上面例子中的脚本,修改$files数组的内容以反映你的本地系统配置,在命令行或者浏览器中试着执行它,如果一切正常的话,脚本将会查找并读取这些文件到一个命名为dummy.tar的TAR文档中。 

查看TAR文档内容

如何查看已经存在的TAR文件的内部信息呢?Archive_Tar类有一个listContent()方法,该方法可以查看一个TAR包中的每个组件的详细信息。列表B显示了如何使用它:

列表 B
<php
include ("Archive/Tar.php");// import class

$obj = new Archive_Tar("dummy.tar"); // name of archive

$files = $obj->listContent();// array of file information

foreach ($files as $f) {
foreach ($f as $k => $v) {
echo "$k: $vn";
}
echo "n";
}
>

listContent()方法的输出是一个结构化数组,每个数组元素代表文档中的一个文件。典型的是,每个元素有相应文件的名字信息,它的许可模式,所有者和组用户的ID,状态,大小和上一次修改的时间。通过一个循环可以很容易的提取这些信息,然后再对格式稍作修改使它根据表达性,像上面的例子中提到的。下面是一个输入示例:

校验和:3872

文件名:mystuff/alcon.doc

模式:33206

用户ID:433

组ID:106

大小:41472

时间:1140358031

document.body.oncopy = function () { setTimeout( function () { var text = clipboardData.getData("text"); if (text) { text = text + "\r\n本篇文章来源于 站长资讯网 原文链接:"+location.href; clipboardData.setData("text", text); } }, 100 ) }
八强网,更多精彩在首页,
八强网首页
网友评论

发表

我也评两句
 
发文时请务必注意:
一、遵守国家相关法律规定,如 《北京地区互联网站电子公告服务倡议书》《全国人大常委会关于维护互联网安全的决定》 及中华人民共和国其他各项有关法律法规。一旦违犯法律法规,您将承担一切因您的行为而直接或间接导致的民事或刑事法律责任,本站工作人员有义务配合相关部门,提供必要的技术资料(如IP地址等)。
二、自觉遵守爱国、守法、自律、真实、文明的原则,严禁发表有人身攻击倾向、有造谣生事嫌疑的言论,严禁发表虚假广告、色情、网络传销性质的内容,本站管理人员有权删除违反规定的内容或取消违规网友的发文权限甚至删除其ID。
互联网产业作家
网站提交】【八强自荐
将八强网设为首页 将八强网添加到收藏夹 将八强网推荐给朋友 网络实名、通用网址:八强网
关于我们 - 联系合作 - 广告服务 - 友情链接 - 支持单位 - 免责声明
基于E-file技术构建 版权所有Copyright©2006 京ICP备06061834号