What are the best practices for handling zip functions in PHP to ensure efficient and secure coding practices?

When handling zip functions in PHP, it is important to ensure that input validation is performed to prevent any potential security vulnerabilities such as directory traversal attacks. Additionally, it is recommended to use proper error handling and sanitization techniques to handle any unexpected issues that may arise during zip file processing.

// Example of handling zip functions in PHP with proper input validation and error handling

$zipFile = 'example.zip';
$extractPath = 'extracted_files/';

// Validate input
if (filter_var($zipFile, FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>"/^[a-zA-Z0-9\._-]+\.zip$/"))) === false) {
    die("Invalid zip file name");
}

// Create a ZipArchive object
$zip = new ZipArchive;

// Open the zip file
if ($zip->open($zipFile) === TRUE) {
    // Extract the contents to the specified path
    $zip->extractTo($extractPath);
    $zip->close();
    echo 'Files extracted successfully';
} else {
    echo 'Failed to extract files';
}