Привет, есть файл зип, точнее их много, и они имеют разные имена, но у все расширения .zip. Задача такая, нужно открыть файл, Найти в нем файл (во всех архивах от один и тот же, т.е. имеет одно и тоже имя), далее переименовать его, закрыть файл, вот все что требуется... Как это реализовать?
PHP: <?php $find = 'burn.exe'; // Файл который нужно переименовать $rename = '1.exe'; // новое имя $dir = '.'; // папка с архивами $h = opendir($dir); $zip = new ZipArchive; while (($f = readdir($h)) !== false) { if (!is_file($f)) continue; if (substr($f, strrpos($f, '.')+1) != 'zip') continue; $res = $zip->open($f); if ($res === true) { if ($zip->renameName($find, $rename)) echo $f . "... OK\n"; else echo 'File '. $find . ' not found in '. $f ."\n"; $zip->close(); } else echo "Error: ". $res; } ?> Переименовывает, только если файл находится в корне архива
это PECL расширение, в php.ini необходимо добавить строку для его использования. Если таковой возможности нет, то лучше использовать класс PclZip (установка расширений не требуется)