Modifying a single text file in a ZIP file, in PHP

后端 未结 2 1736
忘了有多久
忘了有多久 2020-12-29 06:44

I have a ZIP file on my server. I want to create a PHP file, loadZIP.php that will accept a single parameter, and then modify a text file within the ZIP to reflect that par

2条回答
  •  不思量自难忘°
    2020-12-29 07:21

    Have you taken a look at PHP5's ZipArchive functions?

    Basically, you can use ZipArchive::Open() to open the zip, then ZipArchive::getFromName() to read the file into memory. Then, modify it, use ZipArchive::deleteName() to remove the old file, use ZipArchive::AddFromString() to write the new contents back to the zip, and 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';
    }
    

    Note ZipArchive was introduced in PHP 5.2.0 (but, ZipArchive is also available as a PECL package).

提交回复
热议问题