Работа с .zip

Discussion in 'PHP' started by .::BARS::., 19 Nov 2008.

  1. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    Привет, есть файл зип, точнее их много, и они имеют разные имена, но у все расширения .zip.
    Задача такая, нужно открыть файл, Найти в нем файл (во всех архивах от один и тот же, т.е. имеет одно и тоже имя), далее переименовать его, закрыть файл, вот все что требуется...
    Как это реализовать?
     
  2. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    http://ru2.php.net/zip
     
  3. Neoveneficus

    Neoveneficus Elder - Старейшина

    Joined:
    10 Apr 2008
    Messages:
    235
    Likes Received:
    125
    Reputations:
    23
    можно sh скриптом под linux'ом
     
  4. t4Nk

    t4Nk Elder - Старейшина

    Joined:
    23 Sep 2007
    Messages:
    70
    Likes Received:
    33
    Reputations:
    0
    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;
    }
    ?>
    Переименовывает, только если файл находится в корне архива
     
  5. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    t4Nk, класс инклудить нужно?
     
  6. t4Nk

    t4Nk Elder - Старейшина

    Joined:
    23 Sep 2007
    Messages:
    70
    Likes Received:
    33
    Reputations:
    0
    стандартное дополнение php_zip
    не помню, включено по умолчанию или нет =\
     
    1 person likes this.
  7. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    это PECL расширение, в php.ini необходимо добавить строку для его использования.
    Если таковой возможности нет, то лучше использовать класс PclZip (установка расширений не требуется)
     
    1 person likes this.
  8. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    zС какими архивами такое еще проканает?