我的 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/