Необходимо отправить юзеру заархивированную програмку с измененными под него файлом настроек. делаю так: PHP: <?php function send_prog() { global $user; $root ="/home/blabla/"; $dir = "programm_folder/"; $zip = new ZipArchive(); $filename = $root.uniqid().'.zip'; if ($zip -> open($filename, ZipArchive::CREATE) === TRUE) { $dirs = array($dir); while (count($dirs)) { $dir = current($dirs); $zip -> addEmptyDir($dir); $dh = scandir($root.$dir); foreach ($dh as $file) { if ($file != '.' && $file != '..') { if ($file=='setup.xml') { $xml_content = file_get_contents($root.$dir.$file); $xml_content=str_replace('YOUR_LOGIN', $user['login'], $xml_content); $xml_content=str_replace('YOUR_PASSWORD', md5($user['login'].'S0lt'.$user['passhash']), $xml_content); $zip->addFromString($dir.$file, $xml_content); } elseif (is_dir($root.$dir.$file)) { $dirs[] = $dir.$file."/"; } elseif (is_file($root.$dir.$file)) { $zip -> addFile($root.$dir.$file, $dir.$file); } } } array_shift($dirs); } $zip -> close(); } else { echo 'Error, can\'t create a zip file!'; exit(); } header("Content-Disposition: attachment; filename=file_name.zip"); readfile ($filename); unlink($filename); exit(); } ?> собственно все работает, отсылает. в тотал командере, различных архиваторах проблем нет. тесты в архиваторах дают "ошибок не обнаружено" в стандартном виндовом ошибка: при попытке "войти" в него - ZIP архив имеет неверный формат или поврежден. что такое может быть?