wireZipFile() function

Create a ZIP file from given files

This is procedural version of the $files->zip() method. See that method for all options.

Usage

// basic usage
$array = wireZipFile(string $zipfile, $files);

// usage with all arguments
$array = wireZipFile(string $zipfile, $files, array $options = array);

Arguments

NameType(s)Description
zipfilestring

Full path and filename to create or update (i.e. /path/to/myfile.zip)

filesarray, string

Array of files to add (full path and filename), or directory (string) to add. If given a directory, it will recursively add everything in that directory.

options (optional)array

Options modify default behavior:

  • allowHidden (bool|array): allow hidden files? May be boolean, or array of hidden files (basenames) you allow. (default=false) Note that if you actually specify a hidden file in your $files argument, then that overrides this.
  • allowEmptyDirs (bool): allow empty directories in the ZIP file? (default=true)
  • overwrite (bool): Replaces ZIP file if already present (rather than adding to it) (default=false)
  • exclude (array): Files or directories to exclude
  • dir (string): Directory name to prepend to added files in the ZIP

Return value

array

Returns associative array of:

  • files (array): all files that were added
  • errors (array): files that failed to add, if any

Exceptions

Method can throw exceptions on error:

  • WireException - Original ZIP file creation error conditions result in WireException being thrown.

See Also


Functions methods and properties

API reference based on ProcessWire core version 3.0.236

Latest news

  • ProcessWire Weekly #554
    In the 554th issue of ProcessWire Weekly we'll check out the latest core updates, introduce a couple of new third party modules, and more. Read on!
    Weekly.pw / 21 December 2024
  • Custom Fields Module
    This week we look at a new ProFields module named Custom Fields. This module provides a way to rapidly build out ProcessWire fields that contain any number of subfields/properties within them.
    Blog / 30 August 2024
  • Subscribe to weekly ProcessWire news

“…building with ProcessWire was a breeze, I really love all the flexibility the system provides. I can’t imagine using any other CMS in the future.” —Thomas Aull