2010-10-08 34 views
13

Je ne peux pas trouver un et je ne sais pas si l'un des PHP Compression and Archive Extensions fonctionnera.Extension 7z pour php?

Pensez-vous que je pourrais utiliser un compression stream pour lire les données d'un fichier 7z?

MISE À JOUR

  • 7z forums ont beaucoup de demandes pour une extension php
+0

S'il n'y en a pas, vous pouvez toujours utiliser 'exec' pour interfacer avec 7zip. – Gordon

+0

Je sais mais je préférerais trouver une solution sans exec. –

+0

J'ai envisagé d'écrire une extension pour 7-Zip, mais ... 7-Zip lui-même est Windows uniquement. D'autre part, p7zip ne supporte pas Windows. Il serait donc difficile d'écrire une extension portable. Ensuite, si je me souviens bien, il y a le problème avec la licence LGPL qui n'est pas idéale. Utiliser simplement le SDK LZMA serait possible (je pense qu'il a une API C portable), mais ce n'est pas la même chose. – Artefacto

Répondre

5

Le format de fichier 7z peut utiliser divers compression algorithms, vous pourriez être en mesure de décompresser l'archive avec l'un des existants utilitaires pour bzip2 ou dégonfler.

J'ai trouvé une classe PHP 7z aussi, et vous avez de la chance car c'est still being developed. Voici le latest version.

+0

"A ce jour, il a été testé uniquement sur Linux, et se limite à la liste du contenu d'une archive, il peut aussi renvoyer le Content-Type de tous les fichiers, il peut aussi renvoyer le contenu Charset + de' text/... ' Il peut également renvoyer le contenu des archives stockées dans les archives. " –

+1

Eh bien c'est mieux que rien, je suppose. Peut-être que l'utilisation de [LZMA SDK] (http://www.7-zip.org/sdk.html) et de [SWIG for PHP] (http://www.swig.org/Doc1.3/Php.html) pourrait être un moyen facile de faire une extension 7z. Bien que, je ne suis pas sûr que c'est considérablement mieux que d'utiliser un programme de ligne de commande à travers exec(). – bobdiaes

+0

vous avez raison. pas beaucoup mieux –