2013-07-20 4 views
0

Я хотел бы автоматизировать загрузку последней версии WordPress в корневую папку веб-сервера. Вот мой код до сих пор:Использование PHP + TAR для извлечения папки

<?php 
$fp = fopen (dirname(__FILE__) . '/wp.tar.gz', 'w+'); 
$ch = curl_init('http://wordpress.org/latest.tar.gz'); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_exec($ch); 
curl_close($ch); 
fclose($fp); 
exec('tar -zxvf wp.tar.gz wordpress'); 
unlink('wp.tar.gz'); 
?> 

Проблема в том, что WordPress архивный файл содержит каталог/WordPress, который содержит все файлы, так что после запуска этого PHP файл, который я теперь есть/Wordpress каталог, который содержит файлы, но вместо всего, что в/wordpress, я хочу, чтобы он находился в/(откуда запускался PHP-файл). Или я должен использовать команду «mv», чтобы переместить все из/wordpress в /?

Спасибо

ответ

1
Why dont you use this : 
http://wordpress.org/latest.zip 

Then your code would look like: 

<?php 
$filename = "http://wordpress.org/latest.zip"; 
$contents = file_get_contents($filename); 
$latestzip_file = 'latest.zip'; 
$fh = fopen($latestzip_file, 'w') or die("can't open file"); 
fwrite($fh, $contents); 
fclose($fh); 
$zip = new ZipArchive; 
$res = $zip->open($latestzip_file); 
if($res === TRUE) 
{ 
     $zip->extractTo(dirname(__FILE__));  // Extract to the main directory // 
    $zip->close(); 
     unlink($latestzip_file); 
    } 
?> 
1

Попробуйте добавить --strip=1 неавтоматического

tar xvzf wp.tar.gz --strip=1 
Смежные вопросы