Архив средствами PHP

Discussion in 'PHP' started by Komyak, 2 Jul 2010.

  1. Komyak

    Komyak Banned

    Joined:
    14 Jan 2009
    Messages:
    197
    Likes Received:
    17
    Reputations:
    1
    Запаковываю на сервере папки и файлы после парсинга, и появилась проблема в кодировке.
    Файлы имеют кирилические имена, после упаковки получаются "кракозябры".
    Как можно решить проблему и можно ли вообще?
    Упаковываю так:
    PHP:
    <?PHP
    define
    ('ROOT'rtrim(str_replace('\\''/'dirname(__FILE__)), '/'). '/');
    $name_arch ROOT'archive.zip';
    $files_dir rtrim(ROOT'/');
    $files_to_arch = array();
    require_once(
    ROOT'pclzip.lib.php');
    for(
    $d = @opendir($files_dir); $file = @readdir($d);)
    {      
        if(
    $file!='.' && $file!='..')
        {
            
    $files_to_arch[]= $file;
        }
    }
    chdir($files_dir);
    $archive = new PclZip($name_arch);
    $v_list $archive->create(implode(','$files_to_arch));
    if(
    $v_list == 0)
    {
       die(
    "Ошибка : ".$archive->errorInfo(true));
    }else{
       echo 
    'OK';
    }
    ?>
     
  2. roflzi

    roflzi New Member

    Joined:
    16 Apr 2010
    Messages:
    39
    Likes Received:
    0
    Reputations:
    0
    используйте iconv() над $p_header['filename'] перед добавлением в архив (и после)
     
    #2 roflzi, 2 Jul 2010
    Last edited: 2 Jul 2010
  3. Komyak

    Komyak Banned

    Joined:
    14 Jan 2009
    Messages:
    197
    Likes Received:
    17
    Reputations:
    1
    Пробовал. И когда массив файлов создаётся и когда разбивается перед записью. И кодировки от koi до lat Ничего не помогает.
    И в библиотеку зиповскую совался, но результат не меняется. Кракозябры и при zip, и при gzip
     
  4. roflzi

    roflzi New Member

    Joined:
    16 Apr 2010
    Messages:
    39
    Likes Received:
    0
    Reputations:
    0
    а на других платформах пробовали?
     
  5. Komyak

    Komyak Banned

    Joined:
    14 Jan 2009
    Messages:
    197
    Likes Received:
    17
    Reputations:
    1
    FreeBSD и Linux