2017-09-25 13 views
2

でzipアーカイブを作成します。ウェブサイトの/temp/data/mapフォルダにarchive.zipがあります。しかし、私がアーカイブを開くと、最後にdata.txtというフォルダがたくさんあることがわかります。 /backup/home/fyewhzjp/long_location_of_a_file/temp/data/map10/data.txt したがって、他のフォルダを使わずにdata.txtだけを私のフォルダに残す必要があります。どうしたらいいですか?は、私は、パスワード付きZIPファイルを作成し、パスワードので

答えて

1

私が行ったように、誰もが同じ問題に直面するだろう場合は、ここでの解決策は次のとおりです。 ちょうどこのようshell_execzip-jrqを追加します。その後

shell_exec('zip -jrq -P '.$zipPassword.' '.$zipFileName.'.zip '.$fileName); 

、完全なパスが無視されます。

1

よりもむしろあなただけの機能ZipArchiveOpen::openZipArchive::setPasswordZipArchiveクラスを使用しない理由shell_execを使用して、それは物事が非常に簡単になるだろうと思われます。

<?php 
$zip = new ZipArchive; 
$res = $zip->open('test.zip', ZipArchive::CREATE); 
if ($res === TRUE) { 
    $zip->addFromString('test.txt', 'file content goes here'); 
    $zip->addFile('data.txt', 'entryname.txt'); 
    $zip->setPassword('your_password_here'); 
    $zip->close(); 
    echo 'ok'; 
} else { 
    echo 'failed'; 
} 
?> 

注: この機能は、アーカイブを解凍するために使用するパスワードを設定します。パスワードで保護されていないZipArchiveをパスワードで保護されたZipArchiveに変換しません。

+0

英語は母国語ではありませんが、私のzipアーカイブを解読するのに "setPassword"しか使えず、パスワードでアーカイブを作成して保護することができないということですか? –

+0

正しいですが、これはあなたが期待するようには機能しません... – Milkmannetje

関連する問題