2011-09-06 40 views
5

Sto provando a decomprimere un file tar in una directory, ma non ho idea di come. Posso estrarlo nella stessa directory del file tar, ma non in un'altra cartella.Decomprime il file tar nella directory

$filename = "homedir.tar"; 
exec("tar xvf $filename"); 

provato quanto segue, ma non funziona (nulla è stato estratto):

exec("tar -C, homedir zxvf $filename"); 

Aggiornamento:

Questo è il contenuto del mio file:

# Absolute paths 
$filepath = "/home/acc/public_html/test/test/homedir.tar"; 
$folderpath = "/home/acc/public_html/test/test/homedir"; 

# Check if folder exist 
if(!is_dir($folderpath)) { 
    die('Folder does not exist'); 
} 

# Check if folder is writable 
if(!is_writable($folderpath)) { 
    die('Folder is not writable'); 
} 

# Check if file exist 
if(!file_exists($filepath)) { 
    die('File does not exist'); 
} 

exec("tar -C $folderpath -zxvf $filepath"); 

Nessun errore, ma nulla viene decompresso neanche.

+0

Il tar di pere è installato sul server web? – Mythli

+0

prova a passare un array vuoto come secondo parametro e poi ispezionando il contenuto di quell'array. Ti mostrerà tutto l'output che potrebbe darti un'idea di cosa sta andando storto. vedi: http://us3.php.net/manual/en/function.exec.php – gregghz

+0

Ho provato, restituire vuoto $ status = array(); exec ("tar -C $ folderpath -zxvf $ filepath", $ status); print_r ($ stato); –

risposta

3

Rimuovere la virgola dal -C e aggiungere il trattino prima zxvf:

exec("tar -C $outdir -zxvf $infile"); 

Oppure si può mettere la parte -C alla fine e non è necessario il trattino prima zxvf:

exec("tar zxvf $infile -C $outdir"); 

E probabilmente dovresti assicurarti che i tuoi percorsi siano assoluti, tanto per essere sicuri.

+0

Ottenere questo nel mio error_log: [06-Sep-2011 14:39:11] PHP Attenzione: Modulo 'json' già caricato in Unknown sulla linea 0 –

Problemi correlati