Просмотр полной версии : Работа с .zip
.::BARS::.
19.11.2008, 11:32
Привет, есть файл зип, точнее их много, и они имеют разные имена, но у все расширения .zip.
Задача такая, нужно открыть файл, Найти в нем файл (во всех архивах от один и тот же, т.е. имеет одно и тоже имя), далее переименовать его, закрыть файл, вот все что требуется...
Как это реализовать?
Pashkela
19.11.2008, 12:14
http://ru2.php.net/zip
Neoveneficus
19.11.2008, 15:28
можно sh скриптом под linux'ом
<?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;
}
?>
Переименовывает, только если файл находится в корне архива
.::BARS::.
19.11.2008, 18:02
t4Nk, класс инклудить нужно?
t4Nk, класс инклудить нужно?
стандартное дополнение php_zip
не помню, включено по умолчанию или нет =\
стандартное дополнение php_zip
не помню, включено по умолчанию или нет =\
это PECL расширение, в php.ini необходимо добавить строку для его использования.
Если таковой возможности нет, то лучше использовать класс PclZip (http://www.phpconcept.net/pclzip/index.en.php) (установка расширений не требуется)
.::BARS::.
27.11.2008, 09:47
zС какими архивами такое еще проканает?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot