Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Zip Folder Lengkap dan Secara Pilihan Padamkan Kandungannya Menggunakan PHP?

Bagaimana untuk Zip Folder Lengkap dan Secara Pilihan Padamkan Kandungannya Menggunakan PHP?

Barbara Streisand
Barbara Streisandasal
2024-12-27 10:22:11749semak imbas

How to Zip a Complete Folder and Optionally Delete Its Contents Using PHP?

Mengzip Folder Lengkap dengan PHP

Soalan:

Bagaimana anda boleh membuat arkib ZIP bagi keseluruhan folder menggunakan PHP? Selain itu, bagaimanakah anda memadamkan semua kandungan folder selepas mengezipnya, tidak termasuk fail tertentu?

Jawapan:

1. Zip Seluruh Folder:

$rootPath = rtrim($rootPath, '\/');
$rootPath = realpath('folder-to-zip');

$zip = new ZipArchive();
$zip->open('file.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);

$files = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($rootPath),
    RecursiveIteratorIterator::LEAVES_ONLY
);

foreach ($files as $file) {
    if (!$file->isDir()) {
        $filePath = $file->getRealPath();
        $relativePath = substr($filePath, strlen($rootPath) + 1);

        $zip->addFile($filePath, $relativePath);
    }
}

$zip->close();

2. Zip Seluruh Folder Padam Semua Fail Kecuali "important.txt":

$rootPath = rtrim($rootPath, '\/');
$rootPath = realpath('folder-to-zip');

$zip = new ZipArchive();
$zip->open('file.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);

$filesToDelete = array();

$files = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($rootPath),
    RecursiveIteratorIterator::LEAVES_ONLY
);

foreach ($files as $file) {
    if (!$file->isDir()) {
        $filePath = $file->getRealPath();
        $relativePath = substr($filePath, strlen($rootPath) + 1);

        $zip->addFile($filePath, $relativePath);

        if ($file->getFilename() != 'important.txt') {
            $filesToDelete[] = $filePath;
        }
    }
}

$zip->close();

foreach ($filesToDelete as $file) {
    unlink($file);
}

Atas ialah kandungan terperinci Bagaimana untuk Zip Folder Lengkap dan Secara Pilihan Padamkan Kandungannya Menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn