使用PHP从file.tar中提取文件夹内容

时间:2017-06-05 11:22:44

标签: php

我正在尝试使用PHP提取tarball中文件夹的内容。我使用以下PHP下载并解压缩存档:

<?php

function wget($address,$filename) {
    file_put_contents($filename,file_get_contents($address));
}

$newdir = 'test';

echo '<br>Downloading latest gzipped WordPress tarball';

wget('http://wordpress.org/latest.tar.gz', 'latest.tar.gz');

echo '<br>about to Extract from gz';

// decompress from gz
$p = new PharData('latest.tar.gz');
$p->decompress(); // creates files.tar

echo '<br>Extracted from gz';

// unarchive from the tar
$phar = new PharData('latest.tar');
echo '<br>Un-TARd';
$phar->extractTo($newdir); 

echo '<br>Complete';


?>

我的问题是这个脚本将tarball提取到/test/wordpress,而我需要它提取到/test/。我已阅读PHP.net手册中的this文档,并替换了部分代码以满足其中一个示例。我的代码是:

$phar->extractTo($newdir);

我把它改为:

$phar->extractTo($newdir, 'wordpress');

但那并没有奏效。 PHP脚本一直处理到最后但/test/目录为空。 这样做的目的是在我们的本地开发服务器上创建一键式WordPress安装。

1 个答案:

答案 0 :(得分:1)

我知道线程很旧,您可能找到了解决方法,但也许我可以节省其他人的时间。

功能extractTo会在您要提取的目录名称的末尾出现斜杠。

因此$phar->extractTo($newdir, 'wordpress/');应该有效。