Как преобразовать необработанные данные в zip-файл в php с помощью CURL?

Я использую php Curl для получения zip-файла, но получаю необработанные данные, например

введите здесь описание изображения

Как преобразовать эти данные в zip-файл, я пробовал это

$url = "https://wordpress.org/latest.zip"; // URL of what you wan to download
$zipFile = "wordpress.zip"; // Rename .zip file
$extractDir = "extracted"; // Name of the directory where files are extracted
$zipResource = fopen($zipFile, "w");

// Get The Zip File From Server
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_FILE, $zipResource);

$page = curl_exec($ch);

if(!$page) {
    echo "Error :- ".curl_error($ch);
}

curl_close($ch);

/* Open the Zip file */
$zip = new ZipArchive;
$extractPath = $extractDir;

if($zip->open($zipFile) != "true"){
    echo "Error :- Unable to open the Zip File";
} 

/* Extract Zip File */
$zip->extractTo($extractPath);
$zip->close();

die('Your file was downloaded and extracted, go check.');

Как преобразовать эти необработанные данные в zip-файл.

Я получил эту ошибку ** ZipArchive::extractTo(): ​​Invalid or uninitialized Zip object**


person Prits    schedule 01.09.2020    source источник
comment
Вам не нужно ничего конвертировать, это это zip-файл. Проверьте возвращаемое значение вашего вызова fopen() — возможно, он не работает.   -  person Alex Howansky    schedule 01.09.2020
comment
Просто получите exec ($page) и напишите в бинарный файл.   -  person Markus Zeller    schedule 01.09.2020
comment
Вы должны упоминать ошибки в своих вопросах. У вас есть возможность подготовить завиток к формату возвращаемых результатов.   -  person GetSet    schedule 01.09.2020
comment
Обновлена ​​​​моя ошибка в вопросе, пожалуйста, проверьте.   -  person Prits    schedule 01.09.2020
comment
Ваш класс ZipArchive может быть подозрительным. Сервер, возможно, даже не вернул весь файл. Нужно больше деталей отладки на этом. Например, zip уже мог быть поврежден.   -  person GetSet    schedule 01.09.2020
comment
означает, что он не находит класс ZipArchive для выполнения функции zip?   -  person Prits    schedule 01.09.2020
comment
ZipArchive сообщает об исключении. Это означает, что если у вас есть какие-то проблемы, у авторов ZipArchive может быть ошибка. Возможно ли? Но помимо этого zip-файл вашего тестового примера уже может быть поврежден.   -  person GetSet    schedule 01.09.2020
comment
Вы пробовали другие zip-файлы или этот?   -  person GetSet    schedule 01.09.2020
comment
нет, я пробовал еще раз, у него та же проблема, отображать данные на экране, но не создавать zip @GetSet   -  person Prits    schedule 01.09.2020
comment
Тогда это библиотека. Это ZipArchive ошибочно. Не невозможный вывод. Вы можете переключать библиотеки   -  person GetSet    schedule 01.09.2020
comment
Давайте продолжим это обсуждение в чате.   -  person Prits    schedule 01.09.2020


Ответы (1)


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

person Prits    schedule 16.03.2021