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

『 更新时间:2008-2-16 』『 字体:变小 变大 』『 作者:佚名 | 来源:互联网 』

向已经存在的TAR文档中添加文件

由于我们大家的健忘性,有时可能忘记某个文件,Archive_Tar 类通过add()方法提供了
向已经存在的文档中添加新文件的能力。为了演示,我们再回到上文的dummy.tar文档,试着给它添加一个新文件(列表C):

列表C

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

if (file_exists('dummy.tar')) {
$obj = new Archive_Tar('dummy.tar'); // name of TAR file
} else {
die('File does not exist');
}

$files = array('otherstuff/logo.gif',
'otherstuff/header.gif',
'morestuff/berlin-bear.psd'); // additional files

if ($obj->add($files)) {
echo 'Added successfully!';
} else {
echo 'Error in file addition';
}
>

从已经存在的TAR文档中提取文件

在你将文件存入文档之后,如何读取它们呢?使用extractList()方法,显然,这个方法可以从一个已经存在的文档中提取一个或多个文件到一个指定目录,如列表D:
列表D

<php

include ('Archive/Tar.php');// import class

if (file_exists('dummy.tar')) {

$obj = new Archive_Tar('dummy.tar'); // name of TAR file

} else {

die('File does not exist');

}

$files = array('otherstuff/logo.gif',

'mystuff/alcon.doc'); // files to extract

if ($obj->extractList($files, 'unpackaged/')) {

echo 'Extracted successfully!';

} else {

echo 'Error in file extraction';

}

>

这里,要提取文件数组传递给extractlist()方法,同时包括提取文件存入的目录名。注意的是文件将连同它们的内部目录结构一起被提取出来(虽然这个行为可以通过传递特殊参数给extractlist()方法进行修改)。

除了这种可选择提取,还可以使用extract()方法,这个方法解压整个文档,提取所有文件到一个指定目录。如果这个目录不存在,它将通过extract()方法自动创建,当然要假设脚本据有些磁盘的许可权。列表E显示如何去做:
列表E

<php
include ('Archive/Tar.php'); // import class
if (file_exists('dummy.tar')) {
$obj = new Archive_Tar('dummy.tar'); // name of TAR file
} else {
die('File does not exist');
}
if ($obj->extract('unpackaged/')) {
echo 'Extracted successfully!';
} else {
echo 'Error in file extraction';
}
>

如上面的例子演示,PEAR的Archive_Tar类是多功能的,它允许你仅用几行简单的代码就可以执行一些相当复杂的TAE行为。希望本文中的示例脚本对你在日常的开发活动中使用Archive_Tar类有所帮助。

上一页  [1] [2] 

【点击数:】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

关文章

您的姓名:
评分等级:
1分 2分 3分 4分 5分
评论内容:
1、严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
2、用户需对自己在使用金石网服务过程中的行为承担法律责任。
3、本站管理员有权保留或删除评论内容。
4、评论内容只代表网友个人观点,与本网站立场无关。
  • 金石网
  • | 设为首页 | 加入收藏 | 联系我们 | 版权申明 | 友情链接 | 站点地图 | 网站帮助 | 网站留言 | 广告服务 |
  • Copyright © 2001-2008 KingsNet.biz All Rights Reserved. 闽ICP备05026663号
  • 返回网站顶部