压缩HTML / PDF,存储为Blob

时间:2010-08-26 11:24:18

标签: php mysql zip blob

我有一个包含html内容的变量$html和一个包含pdf内容$pdf的变量。

我可以使用$zip->addFile($file,$file);创建zip文件 其中$ file是磁盘上的文件 但是,我想用变量中的内容创建zip文件,而不必先将它们写入磁盘。我该怎么做?

我已经在数据库中存储了$ html和$ pdf as-is。压缩它们可以帮助我节省数据库中的一些空间。

我的下一个问题很可能是如何在不先将内容解压缩到磁盘的情况下解压缩内容,但让我们看看。

3 个答案:

答案 0 :(得分:5)

$zip->addFile($file,$file);我猜你正在使用ZipArchive PHP扩展。您可以使用方法addFromString()

在Zip存档中创建文件
$zip->addFromString('file.html', $html_data);
$zip->addFromString('file.pdf', $pdf_data);

另见:http://nl3.php.net/manual/en/function.ziparchive-addfromstring.php

答案 1 :(得分:1)

当您存储到数据库并从中检索时,您可以使用MySQL COMPRESSUNCOMPRESS函数。

答案 2 :(得分:1)

由于我使用的是php,我发现这是最好的解决方案。

$html="<h1>Contains HTML</h1>";

$ziphtml=gzcompress($html,9);

$statement=mysql_query("INSERT into TABLE (field) VALUES ('$ziphtml')",$db);

然后使用gzuncompress

读取字段时解压缩

http://php.net/manual/en/function.gzcompress.php