Задать вопрос
ogregor
@ogregor
арендатор vpn сервера debian

Как рещить проблему с кириллицей при создании архивов посредством php zip?

В частности в архив добавляется дамп базы данных в кодировке utf-8 на выходе из архива ломается.

$archiveName = date('YmdHi') . '-' . APP::$conf['location'][1] . '.zip';


    $zip = new ZipArchive;
    $zip->open($archiveName, ZIPARCHIVE::CREATE);

    // create recursive directory iterator
    $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(ROOT), RecursiveIteratorIterator::LEAVES_ONLY);
    foreach ($files as $name => $file) {
        $filePath = $file->getRealPath();
        $localPath = explode(ROOT, $filePath);

        if ((strpos($filePath, ROOT . '/logs') !== false) || (strpos($filePath, ROOT . '/tmp') !== false)) {
            continue;
        } else {
            if (is_file($filePath)) {
             //   echo mb_substr($localPath[1], 1)."<br>";
                $zip->addFile(mb_substr($localPath[1],1));
            }
        }
    }
    $zip->close();

    header('Content-Type: application/zip; charset=utf-8');
    header('Content-Length: ' . filesize($archiveName));
    header('Content-Disposition: attachment; filename="' . $archiveName.'"');

    readfile($archiveName);
  //  unlink($archiveName);
    rmdir($backupDir);
    exit;
  • Вопрос задан
  • 278 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы