2011-09-06 28 views
5

tarファイルをディレクトリに解凍しようとしていますが、どのように考えているのでしょうか。 私はそれをtarファイルと同じディレクトリに展開できますが、別のフォルダに展開することはできません。 (何が抽出されていない)tarファイルをディレクトリに解凍する

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

は、以下を試してみましたが、それは動作しません:

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

更新:

# 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"); 
:これは私のファイルの内容が

です

エラーはありませんが、いずれも解凍されません。

+0

ウェブサーバーにpear tarがインストールされていますか? – Mythli

+0

空の配列を2番目のパラメータとして渡してから、その配列の内容を調べてみてください。何が起こっているのかを知る手がかりを与えるすべての出力を表示します。参照してください:http://us3.php.net/manual/en/function.exec.php – gregghz

+0

私は、空の$状態=配列()を返してみました。 exec( "tar -C $ folderpath -zxvf $ filepath"、$ status); print_r($ status); –

答えて

3

-Cからカンマを削除し、zxvf前にダッシュを追加します。

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

それとも、最後に-C部分を置くことができますし、zxvf前にダッシュを必要としません:

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

パスが絶対的なものであることを確認してください。

+0

これを私のerror_logに取得する:[2011年6月9日14時39分11秒] PHP警告:Module 'json'は既にUnknownの0行目に読み込まれています –

関連する問題