用恰当的参数简单的调用extractmodify()方法.
方法 : extractmodify($p_path, $p_remove_path)
描述 :
该方法在由$p_path声明的目录里解出压缩包所有内容.如果是关联的,文件/目录的已记录路径可以在文件/路径开头因删除了$p_remove_path路径而改变.
当解压一个文件时,如果目录路径不存在,则创建之.
当解压一个文件时,如果文件已经存在,那么不必查看最后修改日期即会被替代.
当解压一个文件时,如果一个文件已经存在且为写保护,则解压会被中止.
当解压一个文件时,如果具有同样名称的目录已经存在,则解压会被中止.
当解压一个目录时,如果具有同样名称的文件已经存在,则解压会被中止.
当解压一个文件/目录时,如果目标目录存在且为写保护,或者不存在但不能创建,则解压会被中止.
如果在解压之后,一个已解出文件与存储文件尺寸不一致,则解压会被中止.
当解压被中止时,一个pear文本会被发送,并且返回false.但是结果可能时需要手工清理的一部分解出的东西.
参数 :
$p_path : 为文件/目录需要解压到的地方.
$p_remove_path : 已记录路径的一部分,如果出现在文件/目录路径的开头,就可以被删除.
返回值 :
成功返回true,错误返回false.
样例 :
// 设想一个含下列文件的tarname.tar
:
// dev/data/file.txt
// dev/data/log.txt
// readme.txt
$tar_object =
new archive_tar("tarname.tar");
$tar_object->extractmodify("install",
"dev");
// 文件将被解压到那里(译注:install目录下) :
// install/data/file.txt
// install/data/log.txt
// install/readme.txt
如何工作 :
打开压缩包,调用一个可以解压压缩包一部分或全部的更通用的函数.
查阅extractlist()方法查看更多细节.
方法 : extractinstring($p_filename)
描述 :
该方法从压缩包中解出一个由$p_filename声明的文件.
返回一个含文件内容的字符串或者错误时返回null.
参数 :
$p_filename : 要解出内容到一字符串的路径.
返回值 :
一个含文件内容的字符串或者null.
样例 :
// 设想一个含下列文件的tarname.tar
:
// dev/data/file.txt
// dev/data/log.txt
// dev/readme.txt
$v_archive =
& new archive_tar('tarname.tar');
$v_archive->seterrorhandling(pear_error_print);
$v_string =
$v_archive->extractinstring('dev/readme.txt');
echo $v_string;
方法 : listcontent()
描述 :
该方法返回一列数组(译注:即为二维数组),用来描述每一个在压缩包里的文件/目录.
该数组没有被排序,所以它可以示意文件在压缩包中的位置.
文件的信息有:
$file[filename] : 文件/目录的名称和路径.
$file[mode] : 文件权限(为fileperms()的结果)
$file[uid] : 用户id
$file[gid] : 用户组id
$file[size] : 文件尺寸
$file[mtime] : 最后修改时间(为filemtime()的结果)
$file[typeflag] : 对文件来说为"", 对目录来说为"5"
参数 :
返回值 :
一列数组或者错误返回0.
样例 :