I am trying to extract the contents of a folder within a tarball using PHP. I am using the following PHP to download and extract the archive:
<?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';
?>
My problem is that this script extracts the tarball into /test/wordpress
whereas I need it to extract to /test/
. I have read through this documentation on the PHP.net Manual and replaced part of my code to meet one of the examples there. The code I had was:
$phar->extractTo($newdir);
And I changed that to:
$phar->extractTo($newdir, 'wordpress');
But that didn't work. The PHP script processed through to the end but the /test/
directory was empty.
The aim of this is to create a one-click WordPress install on our local dev server.