2017-02-23 88 views
1

我有一個包含許多文件和文件夾的rar文件。我想將rar文件的子文件夾中的文件解壓到主文件夾。PHP - 將rar歸檔的所有文件提取到主文件夾

我已經試過這樣:

$archive = RarArchive::open('example.rar'); 

$entries = $archive->getEntries(); 

foreach ($entries as $entry) 
    $entry->extract($dir); 

$archive->close(); 

然而這個提取文件到同一文件夾,而不是主文件夾。

有什麼建議嗎?

+0

也許'$入門>提取物(NULL,$ DIR '/' 基本名($入門>的getName()));'? http://php.net/manual/en/rarentry.extract.php – JustOnUnderMillions

+0

@JustOnUnderMillions不,它再次被提取到同一個文件夾中。 – moontoise

+0

不知道'$ dir'(路徑(相對或絕對)):-)但是你幫助自己 – JustOnUnderMillions

回答

0

我想一個自己的解決方案,它的工作原理:

$archive = RarArchive::open('example.rar'); 

$entries = $archive->getEntries(); 

foreach ($entries as $entry) 
{ 
     $fileinfo = pathinfo($entry->getName()); 
     copy("rar://".$file."#".$entry->getName(), $dir.'/'.$fileinfo['basename']); 
} 

$archive->close(); 

爲不提取文件夾(空文件夾),我們可以把

if(!empty($fileinfo['extension'])) 

副本功能。

感謝我:-)

相關問題