2016-07-21 8 views
0

私はPHPでフォルダを解凍しようとしていて、そのファイルでいくつかのことをやっています。私は正常に動作しているが、私はzipフォルダのルートの内側にzipフォルダのためにこの作業を行う必要があります。PHPを使用すると、圧縮されたフォルダ内のフォルダを再帰的に解凍できますか?

だから、zipped1にimage1とzipped2が含まれている可能性があります。私はzipped2も抽出する必要があります。私は以下のように再帰によってこれをやろうとしています。明らかにこれは完全なコードではなく関連ビットです。

$tempFile = $_FILES['Filedata']['tmp_name']; 
function handle_zip($ZipHandler) 
{ 
    while($zip_entry = zip_read($ZipHandler)) 
    { 
    $ext = explode(".",zip_entry_name($zip_entry))[1]; 
    if($ext=="zip") 
    handle_zip(zip_open($zip_entry)); 
    } 
} 
$ZipHandler = zip_open($tempFile); 
handle_zip($ZipHandler); 
zip_close($ZipHandler); 

だから、問題は再帰的関数を呼び出すと、引数としてファイルを送信する必要がありますが、サーバー上のTempフォルダにアップロードされたファイルを開くにはzip_open思われることである - と、この再帰arugmentは、その一時フォルダにありません。

どうすればいいですか?

答えて

0

私はこれを試していないが、しかし、あなたは、再帰呼び出しで

zip_entry_open($zip_entry,$entry); 
handle_zip(zip_open($entry)); 

を試みることができます。 Thisが関連するドキュメントページです。

ファイル名に複数のドットが含まれている場合や、ファイルに複数のドットが含まれている場合は、2番目のファイルではなく、最後の部分を取得することもできます。

+0

ありがとうございます。 whileループでそれを読み込もうとするとエラー1が発生します。 –

関連する問題