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

我试图通过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”); (不推荐,但会起作用)

标签:php,phar,archive-tar

来源: https://codeday.me/bug/20190709/1412254.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值