从已经存在的TAR 文档中提取文件
在你将文件存入文档之后,如何读取它们呢?使用extractList()方法,显然,这个方法可以从一个已经存在的文档中提取一个或多个文件到一个指定目录,如列表D:
列表D
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
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类有所帮助。