我正在尝试使用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安装。
答案 0 :(得分:1)
我知道线程很旧,您可能找到了解决方法,但也许我可以节省其他人的时间。
功能extractTo
会在您要提取的目录名称的末尾出现斜杠。
因此$phar->extractTo($newdir, 'wordpress/');
应该有效。