【问题标题】:How to extract bz2 file in php如何在php中提取bz2文件
【发布时间】:2015-06-19 19:46:32
【问题描述】:

我使用phpmyadmin 从数据库中导出了一个SQL 文件。该文件名为 final.sql.bz2,然后我将其上传到我的 Live Server。

问题是,如何使用 PHP 代码提取该文件?我试图在谷歌上搜索,但没有得到任何结果。我怎么能unzip呢?

【问题讨论】:

  • 为什么要解压sql文件?
  • 我的 phpmyadmin 不允许导入超过 5 mb 的文件,所以我想从 php 端运行它
  • 这样您就可以正常压缩该文件并从 phpmyadmin 导入。
  • 我认为zip sql文件不需要使用php代码,您可以正常压缩该文件并在php myadmin中导入。
  • 是的,但是当我制作 zip 时,它会制作 19 mb 的 zip 文件,我使用共享服务器,然后它不允许上传超过 5 mb 的文件。

标签: php extraction bzip2


【解决方案1】:

您应该使用 PHP 中的 bzip 函数,而不是它们不同的 zip 函数。

http://php.net/manual/en/book.bzip2.php

或者如果可能的话,您可以使用exec 执行bunzip2 命令从存档中提取文件:

bunzip2 [DATEI].bz2

【讨论】:

    【解决方案2】:

    我需要在 共享主机 中提取 bz2,tar 无法帮助我提取(bzip2 和 lbzip2 出错,我无法安装任何东西或执行 sudo...)

    我通过创建一个php文件并从命令行运行它来解决它(当然你也可以修改脚本以在线使用它)。

    bunzip2.php

    <?php
    function decompress($data)
     {
         // Decompress the file
         if (@file_exists($data)) {
             $bz = bzopen($data, 'r');
             $uncompressed = '';
             // Read the uncompressed data.
             while (!feof($bz)) {
                 $uncompressed .= bzread($bz, 4096);
             }
             // Close the Bzip2 compressed file and write
             // the data to the uncompressed file.
             bzclose($bz);
             if (stripos($data, '.tbz2') !== false) {
                 $newFile = str_replace('.tbz2', '.tar', $data);
             } else {
                 if (stripos($data, '.tbz') !== false) {
                     $newFile = str_replace('.tbz', '.tar', $data);
                 } else {
                     $newFile = str_replace('.bz2', '', $data);
                 }
             }
             file_put_contents($newFile, $uncompressed);
             return $newFile;
             // Else, decompress the string
         } else {
             return bzdecompress($data);
         }
     }
    
    decompress($argv[1]);
    ?>
    

    php bunzip2.php my.tar.bz2

    (我只是在github上搜索了bz2+php,我没有详细检查代码,但它确实有效;)

    【讨论】:

      猜你喜欢
      • 2014-11-14
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多