/** change some non ASCII characters arriving in the zip file */ function change_strings($file) { $lines = file($file); $data = ''; foreach ($lines as $line) { $data .= m_str_replace($line, array('<br>' => '<br />', '’' => "'", '–' => '-', '‘' => "'", '“' => '"', '”' => '"')); } return $data; }
function Zip($sources, $destination) { @unlink($destination); if (extension_loaded('zip') === true) { $zip = new ZipArchive(); if ($zip->open($destination, ZIPARCHIVE::CREATE) === true) { foreach ($sources as $source) { if (is_dir($source) === true && $source != '.' && $source != '..') { $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::LEAVES_ONLY); foreach ($files as $file) { $out = m_str_replace($file, array("\\" => "/")); if ($source === '_cache') { $out = m_str_replace($out, array($source . '/' => '')); } if (is_dir($file) === true) { $zip->addEmptyDir($out); } elseif (is_file($file) === true) { $contents = ''; foreach (file($file) as $line) { $contents .= $line; } $zip->addFromString($out, $contents); } } } elseif (is_file($source) === true) { $contents = ''; foreach (file($source) as $line) { $contents .= $line; } $zip->addFromString(basename($source), $contents); } } } return $zip->close(); } else { die('Zip extension not Loaded!'); } return false; }