Server IP : 172.67.157.199 / Your IP : 18.188.68.169 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/plugins/wp-all-export/classes/ |
Upload File : |
<?php if ( ! class_exists('PMXE_Zip')){ class PMXE_Zip { /** * Add files and sub-directories in a folder to zip file. * @param string $folder * @param ZipArchive|PclZip $zipFile * @param int $exclusiveLength Number of text to be exclusived from the file path. */ private static function folderToZip($folder, &$zipFile, $exclusiveLength, $type = 'zip', $removePath = '') { $handle = opendir($folder); if($handle !== false) { while (false !== $f = readdir($handle)) { if ($f != '.' && $f != '..') { $filePath = "$folder/$f"; // Remove prefix from file path before add to zip. $localPath = substr($filePath, $exclusiveLength); // Fall back to PclZip if ZipArchive is unavailable. if( 'zip' === $type ) { if ( is_file( $filePath ) ) { $zipFile->addFile( $filePath, $localPath ); } elseif ( is_dir( $filePath ) ) { // Add sub-directory. $zipFile->addEmptyDir( $localPath ); self::folderToZip( $filePath, $zipFile, $exclusiveLength ); } }else{ if( is_file($filePath)) { $zipFile->add( $filePath, '', $removePath ); } } } } closedir($handle); } } /** * Zip a folder (include itself). * Usage: * PMXE_Zip::zipDir('/path/to/sourceDir', '/path/to/out.zip'); * * @param string $sourcePath Path of directory to be zip. * @param string $outZipPath Path of output zip file. */ public static function zipDir($sourcePath, $outZipPath) { $pathInfo = pathInfo($sourcePath); $parentPath = $pathInfo['dirname']; $dirName = $pathInfo['basename']; // Fall back to PclZip if ZipArchive is unavailable. if(class_exists('ZipArchive')){ $z = new ZipArchive(); $z->open($outZipPath, ZIPARCHIVE::CREATE); $z->addEmptyDir($dirName); self::folderToZip($sourcePath, $z, strlen("$parentPath/")); $z->close(); }else{ require_once ABSPATH . 'wp-admin/includes/class-pclzip.php'; $z = new PclZip($outZipPath); self::folderToZip($sourcePath, $z, strlen("$parentPath/"), 'pcl', $parentPath); } } } }