Как конвертировать файл в zip в php - PullRequest
0 голосов
/ 20 марта 2020

Мне нужно преобразовать файл, созданный в php, в zip-файл.

Вот мой код:

 $cacheContent = $gRender->getRenderRaw(
                    "feed-google", array(
                    "_context_" => $this->getType(),
                    "_lang_" => $this->getLang()->getId(),
                    "_id_" => $id));


                $cacheDriver->save($cacheKey, $cacheContent, $cacheExpire);

Можете ли вы помочь мне, как преобразовать cacheContent в zip?

РЕДАКТИРОВАНИЕ: В папке кэша генерируется хеш-файл, сформированный следующим образом: 5d.doctrinecache.data

при каждом изменении имени файла. Этот файл внутри выглядит так:

    <?xml version="1.0"?>
    <rss version="2.0"  xmlns:g="http://google.com">
                <channel>
                                <title>Item</title>
                    <link></link>
                    <description></description>
                    <language></language>
                    <lastBuildDate></lastBuildDate>
                    <generator></generator>

                <item>
  </item>    
        </channel>
    </rss>

Этот файл я хочу конвертировать в zip

1 Ответ

1 голос
/ 23 марта 2020

попробуйте это:

$rootPath = $_SERVER['DOCUMENT_ROOT'];
$backup_name = "exported_zip_file.zip";
$file_name   = "cacheContent.xml";
$file_content = "cacheContent"; // your string
$zip = new ZipArchive();
$zip -> open($rootPath . "/" . $backup_name, ZipArchive::CREATE | ZipArchive::OVERWRITE);
$zip -> addFromString($file_name, $file_content);
$zip -> close();

/* this can be deleted */

$zip_final = $rootPath . "/" .$backup_name;
//
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename = ".$backup_name);
header("Content-Length: " . filesize($zip_final));
//
if(readfile($zip_final)) {
    exit;
}

Обычно вы определяете имя вашего почтового индекса в $ backup_name.

Далее вы определяете имя вашего файла в $ file_name.

Далее вы определяете содержимое из вашего файла в $ file_content.

Затем вы создаете или перезаписываете новый zip-архив.

Затем вы создаете новый файл и добавляете свой $. file_content to.

И, наконец, закрытие zip-файла.

Над словами "это можно удалить" есть несколько заголовков, позволяющих вашему браузеру загрузить новый файл .zip

...