簡體   English   中英

使用php PharData使用空目錄提取tar存檔

[英]Extract tar archive with empty directories with php PharData

我試圖通過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手冊顯示了phar,tar和zip之間的差異。 當然,PharData 應該用於tar檔案,因此您可能希望將此報告為 PHP開發人員的錯誤

目前,如果要在PHP中提取tar存檔,則有三個選項:

  1. 使用PHP中的Phar庫創建存檔,然后在PHP中解壓縮
  2. 使用Pear的Archive_Tar (適用於tartar.gz文件)。
  3. 調用exec("tar -xf test.tar -C /home/user/newtest"); 推薦,但會起作用)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM