php - 如何解压 txt.gz 文件并使用 php 存储到数据库中

标签 php mysql gzip unzip datafeed

我的 zip 文件名为 Product_Catalog.txt.gz。此 zip 文件包含一个 txt 文件。

我如何提取并存储到我的数据库中

我已经完成了 zip 文件解压并存储到我的数据库中。但我无法理解 .gz 格式。所以请指教

我的zip文件代码在这里

if (realpath($destinationname."/".$filename)){
    if ($zip = zip_open(realpath($directory."/".$filename)))
        {
            while (($zip_entry = zip_read($zip))){
            $zipfilename=zip_entry_name($zip_entry  );
            $zipfilename."<br>";
            $tmpfname = tempnam("/tmp", "");
            $handle = fopen($tmpfname, "w+");
            while($data = zip_entry_read($zip_entry,50000000000)){
            fwrite($handle,$data);
            }// end while $data
            fseek($handle,0);
            if ($separatetables);
            $table=strtok($zipfilename,"-");
            $sql="CREATE TABLE IF NOT EXISTS `$table` LIKE `cjfeeds`";
             mysql_query($sql);

如何将这段代码转换成txt.gz

最佳答案

gzip ,通常用于单个文件,与 ZIP 的文件格式不同。 .尽管两种格式使用相同的压缩算法 ( DEFLATE ),但 header 完全不同,因此 PHP 的 Zip 函数无法识别您的文件。

相反,您可以使用 compress.zlib:// wrapper打开 gzip 压缩文件。然后您可以使用普通的流函数来读取文件。

$handle = fopen("compress.zlib://$filename", 'r');

但是,有一些限制;例如,无法以读写模式打开 gzip 文件,而且查找可能会很慢。如有必要,您可以通过制作一个临时的未压缩副本来解决这些问题:

copy("compress.zlib://$filename", $tmpfname);

关于php - 如何解压 txt.gz 文件并使用 php 存储到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14451844/

相关文章:

php - php长轮询中的页面重定向

c# - 我应该如何使用 Fluent NHibernate 添加列级 CHARSET?

php - gzopen 是否将整个文件读入内存?

php - 如何在 php 中使用 AWS api 获取亚马逊产品的产品库存?

php - 由于 Ajax Shoutbox 导致的高 CPU 使用率

mysql - 如何通过mysql获取数据

php - MySql。单击 HTML 按钮后 - TRUNCATE 数据库表

zip - 标准 ZIP 使用哪种算法?

python - 使用python将S3 gzip源对象流式解压到S3目标对象?

php - 转置二维数组,用逗号连接第二层,用管道连接第一层