2013-07-20 78 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的tar文件中包含的目錄/ WordPress的其中包含的所有文件,因此在運行這個PHP文件後,我現在有一個包含了A/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