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.244

Latest news

  • ProcessWire Weekly #559
    The 559th issue of ProcessWire Weekly brings in all the latest news from the ProcessWire community. Modules, sites, and more. Read on!
    Weekly.pw / 25 January 2025
  • ProcessWire 3.0.244 new main/master version
    ProcessWire 3.0.244 is our newest main/master/stable version. It's been more than a year in the making and is packed with tons of new features, issue fixes, optimizations and more. This post covers all the details.
    Blog / 18 January 2025
  • Subscribe to weekly ProcessWire news

“We were really happy to build our new portfolio website on ProcessWire! We wanted something that gave us plenty of control on the back-end, without any bloat on the front end - just a nice, easy to access API for all our content that left us free to design and build however we liked.” —Castus, web design agency in Sheffield, UK