-3

Webサーバー内で、zipをダウンロードし、以下の関数で解凍しています。

$zip = new ZipArchive;
$res = $zip->open('tip.zip');
if ($res === TRUE) {
    $zip->extractTo("$dest/");
    $zip->close();
} else {
    die('ZIP not supported on this server!');
}

問題は、このスクリプトで解凍すると、zip 内のフォルダーが取得されることです (zip 内にフォルダーがあります)。ただし、フォルダー自体ではなく、zipの子フォルダー内のファイル、フォルダーを取得する必要があります。

言い換えると

ここに画像の説明を入力

だから私は必要です:

  • moveRecursive("$username-$reponame-$node", $destination); のような関数を実行します。$destination はルートで、このフォルダーを削除します
  • または、スクリプトが配置されているフォルダー(私の場合はpublic_html)に子フォルダーのコンテンツを直接解凍および解凍しながら、このアクションを何らかの形で実行します

解決策が思いつきません。助けてください。

4

1 に答える 1

2

これは実際には明らかなはずです。

そのフォルダーの名前をスクリプト (zip ファイルの名前の横) に渡し、すべてのファイルをそのフォルダー内から (展開後に) 目的の場所に移動します。

$zip = new ZipArchive;
$res = $zip->open('tip.zip');
if ($res !== TRUE) {
    die('ZIP not supported on this server!');
}

$zip->extractTo("$dest/");
$zip->close();
rename("$dest/dirname/", "$dest/");
于 2012-10-07T10:10:44.413 に答える