2010-08-26 4 views
2

J'ai une variable qui contient le contenu html, $html et une variable avec le contenu pdf $pdf.Zip HTML/PDF, stocker en tant que Blob

Je peux créer des fichiers zip en utilisant $zip->addFile($file,$file); où fichier $ est un fichier sur le disque Cependant, je veux créer des fichiers zip avec le contenu à partir des variables, sans avoir à les écrire sur le disque d'abord. Comment fait-on ça?

Je stocke déjà $ html et $ pdf tel quel dans la base de données. Les compresser m'aiderait à économiser de l'espace dans mon db.

Ma prochaine question sera probablement de savoir comment décompresser le contenu sans les dézipper au disque d'abord, mais voyons.

Répondre

1

Depuis que je suis en utilisant php, je trouve que ce soit la meilleure solution.

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

$ziphtml=gzcompress($html,9); 

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

puis décompressez quand vous lisez le champ à l'aide gzuncompress

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

1

Vous pouvez utiliser les fonctions MySQL COMPRESS et UNCOMPRESS lorsque vous stockez et récupérez dans la base de données.

5

De $zip->addFile($file,$file); Je suppose que vous utilisez l'extension PHP ZipArchive. Vous pouvez créer des fichiers dans l'archive Zip en utilisant la méthode addFromString()

$zip->addFromString('file.html', $html_data); 
$zip->addFromString('file.pdf', $pdf_data); 

Voir aussi: http://nl3.php.net/manual/en/function.ziparchive-addfromstring.php

+0

Il. Pierre devrait nettoyer ses rapports de bogue/demande. J'ai vu [celui-ci] (http://pecl.php.net/bugs/bug.php?id=16838) étendu là et j'ai pensé qu'il n'avait pas encore été implémenté. – Artefacto

+0

Ce rapport de bogue décrit un problème différent. Il veut créer l'archive zip en mémoire. Pour autant que je sache, ce n'est pas possible avec l'extension ZipArchive. (pas même avec le php: // memory en php: // les flux temp) Voir aussi cette question SO: http://stackoverflow.com/questions/1189019/manipulate-an-archive-in-memory-with-php- sans-créer-un-fichier-temporaire-sur-di –

Questions connexes