Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Работа с .zip (https://forum.antichat.xyz/showthread.php?t=92511)

.::BARS::. 19.11.2008 11:32

Работа с .zip
 
Привет, есть файл зип, точнее их много, и они имеют разные имена, но у все расширения .zip.
Задача такая, нужно открыть файл, Найти в нем файл (во всех архивах от один и тот же, т.е. имеет одно и тоже имя), далее переименовать его, закрыть файл, вот все что требуется...
Как это реализовать?

Pashkela 19.11.2008 12:14

http://ru2.php.net/zip

Neoveneficus 19.11.2008 15:28

можно sh скриптом под linux'ом

t4Nk 19.11.2008 16:09

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($fstrrpos($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 19.11.2008 18:05

Цитата:

Сообщение от .::BARS::.
t4Nk, класс инклудить нужно?

стандартное дополнение php_zip
не помню, включено по умолчанию или нет =\

[Raz0r] 19.11.2008 20:38

Цитата:

стандартное дополнение php_zip
не помню, включено по умолчанию или нет =\
это PECL расширение, в php.ini необходимо добавить строку для его использования.
Если таковой возможности нет, то лучше использовать класс PclZip (установка расширений не требуется)

.::BARS::. 27.11.2008 09:47

zС какими архивами такое еще проканает?


Время: 12:12