溫馨提示×

php ziparchive怎樣批量操作

PHP
小樊
81
2024-11-19 02:21:32
欄目: 編程語言

PHP的ZipArchive類允許您批量操作ZIP文件。以下是一些常見的批量操作示例:

  1. 創(chuàng)建一個新的ZIP文件并添加文件到它:
<?php
$zip = new ZipArchive;
$zipFilename = 'example.zip';

if ($zip->open($zipFilename, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== TRUE) {
    exit("無法打開 <$zipFilename>\n");
}

$filesToAdd = array('file1.txt', 'file2.txt', 'file3.txt');

foreach ($filesToAdd as $file) {
    $zip->addFile($file);
}

$zip->close();
?>
  1. 從ZIP文件中提取所有文件:
<?php
$zipFilename = 'example.zip';
$destination = './extract-folder/';

if (!is_dir($destination)) {
    mkdir($destination);
}

$zip = new ZipArchive;

if ($zip->open($zipFilename) === TRUE) {
    $zip->extractTo($destination);
    $zip->close();
    echo "成功提取 <$zipFilename>\n";
} else {
    echo "無法打開 <$zipFilename>\n";
}
?>
  1. 遍歷ZIP文件中的所有文件和文件夾:
<?php
$zipFilename = 'example.zip';

$zip = new ZipArchive;

if ($zip->open($zipFilename) === TRUE) {
    for ($i = 0; $i < $zip->numFiles; $i++) {
        $filename = $zip->getNameIndex($i);
        $fileinfo = pathinfo($filename);
        
        if ($fileinfo['extension'] == 'txt') {
            echo "文件名: {$filename}\n";
        }
    }
    $zip->close();
} else {
    echo "無法打開 <$zipFilename>\n";
}
?>
  1. 刪除ZIP文件中的特定文件:
<?php
$zipFilename = 'example.zip';
$filesToRemove = array('file2.txt', 'file3.txt');

$zip = new ZipArchive;

if ($zip->open($zipFilename) === TRUE) {
    foreach ($filesToRemove as $file) {
        $index = $zip->getLocationIndex($file);
        if ($index !== false) {
            $zip->deleteIndex($index);
        }
    }
    $zip->close();
    echo "成功從 <$zipFilename> 中刪除文件\n";
} else {
    echo "無法打開 <$zipFilename>\n";
}
?>

這些示例展示了如何使用PHP的ZipArchive類執(zhí)行常見的批量操作。您可以根據(jù)需要修改這些示例以滿足您的具體需求。

0