加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用php PharData使用空目录提取tar存档

发布时间:2020-12-13 22:46:35 所属栏目:PHP教程 来源:网络整理
导读:我试图通过 PHP提取.tar存档. 我正在使用这样的代码: $phar = new PharData('test.tar');$phar-extractTo('/home/user/newtest'); 它工作正常,但如果我的存档包含en空目录,它不会被提到的代码提取.所以,如果我的.tar文件具有以下结构: user@computer:~/tes
我试图通过 PHP提取.tar存档.
我正在使用这样的代码:

$phar = new PharData('test.tar');
$phar->extractTo('/home/user/newtest');

它工作正常,但如果我的存档包含en空目录,它不会被提到的代码提取.所以,如果我的.tar文件具有以下结构:

user@computer:~/test$tar -tvf test.tar
drwxrwxr-x user/user         0 2012-12-07 22:35 dir1/
-rw-rw-r-- user/user       798 2012-10-28 23:41 dir1/articles.txt
drwxrwxr-x user/user         0 2012-12-07 22:35 emptyDir/
-rw-rw-r-- user/user       834 2012-09-15 22:47 main.html

我打开包装后得到:

user@computer:~/newtest$ls -l
drwxrwxr-x 2 user user 4096 Dec.   7 22:35 dir1
-rw-rw-r-- 1 user user  834 Sep.  15 22:47 main.html

因此,不提取空的’emptyDir’.

有谁知道如何修理它?

提前感谢您的帮助!

解决方法

看起来test.tar是在命令行上使用tar -cf test.tar …创建的. PHP的Phar库旨在读取phar档案,而不是tar档案.

PHP Manual显示了phar,tar和zip之间的差异.当然,PharData应该用于tar档案,所以你可能想要report this as a bug给PHP开发人员.

目前,如果要在PHP中提取tar存档,则有三个选项:

>使用PHP中的Phar库创建存档,然后在PHP中解压缩
>使用Pear’s Archive_Tar(适用于tar和tar.gz文件).>调用exec(“tar -xf test.tar -C / home / user / newtest”); (不推荐,但会起作用)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读