温馨提示×

php ziparchive怎样批量操作

PHP
小樊
81
2024-11-19 02:21:32
栏目: 编程语言

PHP的ZipArchive类允许您批量操作ZIP文件。以下是一些常见的批量操作示例:

  1. 创建一个新的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类执行常见的批量操作。您可以根据需要修改这些示例以满足您的具体需求。

0