Ответ 1
Вы просмотрели функции PHP5 ZipArchive
?
В принципе, вы можете использовать ZipArchive::Open()
, чтобы открыть zip, затем ZipArchive::getFromName()
, чтобы прочитать файл в памяти. Затем, измените его, используйте ZipArchive::deleteName()
, чтобы удалить старый файл, используйте ZipArchive::AddFromString()
, чтобы записать новое содержимое обратно в zip и ZipArchive::close()
:
$zip = new ZipArchive;
$fileToModify = 'myfile.txt';
if ($zip->open('test1.zip') === TRUE) {
//Read contents into memory
$oldContents = $zip->getFromName($fileToModify);
//Modify contents:
$newContents = str_replace('key', $_GET['param'], $oldContents)
//Delete the old...
$zip->deleteName($fileToModify)
//Write the new...
$zip->addFromString($fileToModify, $newContents);
//And write back to the filesystem.
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
Примечание. ZipArchive был представлен в PHP 5.2.0 (но ZipArchive также доступен как