wp_zip_file_is_valid( string $file ): bool

Determines whether the given file is a valid ZIP file.

Description

This function does not test to ensure that a file exists. Non-existent files are not valid ZIPs, so those will also return false.

Parameters

$filestringrequired
Full path to the ZIP file.

Return

bool Whether the file is a valid ZIP file.

Source

function wp_zip_file_is_valid( $file ) {
	/** This filter is documented in wp-admin/includes/file.php */
	if ( class_exists( 'ZipArchive', false ) && apply_filters( 'unzip_file_use_ziparchive', true ) ) {
		$archive          = new ZipArchive();
		$archive_is_valid = $archive->open( $file, ZipArchive::CHECKCONS );
		if ( true === $archive_is_valid ) {
			$archive->close();
			return true;
		}
	}

	// Fall through to PclZip if ZipArchive is not available, or encountered an error opening the file.
	require_once ABSPATH . 'wp-admin/includes/class-pclzip.php';

	$archive          = new PclZip( $file );
	$archive_is_valid = is_array( $archive->properties() );

	return $archive_is_valid;
}

Hooks

apply_filters( ‘unzip_file_use_ziparchive’, bool $ziparchive )

Filters whether to use ZipArchive to unzip archives.

Changelog

VersionDescription
6.4.4Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.