Reputation: 825
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.
Upvotes: 0
Views: 1333
Reputation: 26
I know the thread is very old and you probably found solution but maybe I'll save someone else time.
Funcion extractTo
expects slash at the end of directory name you want to extract.
So $phar->extractTo($newdir, 'wordpress/');
should work.
Upvotes: 1