【问题标题】:is it possible to open and edit a file inside of a zip file using php? [duplicate]是否可以使用 php 打开和编辑 zip 文件中的文件? [复制]
【发布时间】:2011-10-24 02:15:02
【问题描述】:

我正在开发一个 WordPress 主题,需要进行一些配置才能正常工作。

当我说配置时,我的意思是 config.php 需要稍微编辑(设置一些变量值)。

现在我想知道是否可以进入一个 zip 文件,制作一个完整的临时副本(对于特定用户。也许使用会话 ID?)并编辑副本中的 config.php 文件以设置一些变量值。然后关闭临时 zip 文件并为用户回显该文件的链接,以供下载。

将设置的变量值将来自我网站上用户将下载主题的表单。

这只是一厢情愿,还是我有机会?

谢谢!

【问题讨论】:

  • 请通过stackoverflow.com/search?q=zip+php,然后更新您的问题以指出您在这样做后仍不清楚的任何内容。你的问题的答案是:是的,有可能。

标签: php zip session-cookies sessionid


【解决方案1】:

您可以提取文件,对其进行更改,然后将其重新添加回存档(假设您已安装 ZipArchive 类)。

<?php
    $zip = new ZipArchive;
    $res = $zip->open('yourarchive.zip');
    if ($res === TRUE) {
        $zip->extractTo('/my/destination/dir/', 'config.php');

        // do your edits to the file

        $zip->addFile('config.php');
        $zip->close();
    }
?>

【讨论】:

    【解决方案2】:

    使用ZipArchive 类完全可以做到这一点。您可以使用它打开、创建、展开和保存 Zip 档案。

    【讨论】:

      【解决方案3】:

      肯定有可能。

      但是,您需要编写一些 php 代码来满足您的需求。

      在 php.net 站点上,您可以在 http://php.net/manual/en/book.zip.php 处找到 zip 函数的文档

      我不会为你写任何代码,但你需要取消的步骤如下:

      1. copy zip file to temp area
      2. open temp zip file
      3. extract file from zip to temp area
      4. delete file from temp zip
      5. do changes to file in temp area
      6. add temp file to zip
      7. close zip file
      8. stream zip file to client
      9. delete temp files.
      

      【讨论】:

      • 嘿!感谢您的精彩回答。你知道你在哪里说将 zip 文件复制到临时区域...我可以在复制的 zip 文件进入临时区域之前重命名它吗?因为我最终可能会遇到一个大问题。也许重命名为随机生成的数字。谢谢!
      • 你应该使用这个:php.net/manual/en/function.tmpfile.php
      猜你喜欢
      • 2023-02-24
      • 2022-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-23
      相关资源
      最近更新 更多