zip_open, zip_read, zip_entry_name, zip_entry_filesize, zip_entry_compressedsize, ratio, zip_entry_compressionmethod, zip_is_file, zip_close, function_exists, $_FILES, php_zip.dll
Ca affiche juste le contenu d'un ZIP posté via un formulaire. Pour créer un vrai fichier ZIP, le mieux est d'utiliser la librairie ZLIB et le code
http://www.phpcs.com/code.aspx?id=13282
Remarque:
Avec la librairie Zip (que vous devez activer dans PHP.INI pour que le code fonctionne), pour ouvrir un fichier précis sur un serveur, vous devez fournir le chemin COMPLET ! Vous avez alors:
$Zip=zip_open($_SERVER['DOCUMENT_ROOT'].'/DossierWeb/Fichier.zip');
Programme testé avec:
Apache 1.3.27
PHP 4.3.3
Source / Exemple :
<html>
<title>Afficher le contenu d'un ZIP</title>
<body>
<?php
if (!function_exists('zip_open')) {
echo '<font size=8><b>La librairie ZIP n\'est pas<br>active sur le serveur</b></font>';
echo '<br> <br>Modifier "<code>PHP.INI
" pour pouvoir continuer...</body></html>';
return 0;
}
function zip_is_dir($Value) {
if (strlen($Value)==0)
return false;
else
return ($Value=='.') || ($Value=='..') || ($Value[strlen($Value)-1]=='/');
}
if (!isset($_FILES['fnFichier'])) {
?>
<form name="frmZipView" action="zip.php" method="post" ENCTYPE="multipart/form-data">
Choisir le fichier
<br><input type="file" name="fnFichier">
<br><input type="submit" name="butSend" value="Voir contenu">
</form>
<?php
} else {
$Fln = $_FILES['fnFichier'];
if ($Zip = zip_open($Fln['tmp_name'])) {
echo '<font size=+3><b>'.strtoupper($Fln['name']).'</b></font>';
echo '<font face="Courier New">';
echo '<table border=1 width="60%">';
while ($dat=zip_read($Zip)) {
$ZFic = zip_entry_name($dat);
echo '<tr>';
if (zip_is_dir($ZFic))
echo '<td bgcolor="#D0D0D0" colspan=2><img src="_dir.gif" align=absmiddle> <font face="Courier New"><b>'.$ZFic.'</b></font></td>';
else {
$ExpSize = zip_entry_filesize($dat);
$CompSize = zip_entry_compressedsize($dat);
$Ratio = round(100*100*$CompSize/$ExpSize)/100;
$CmpMethod = zip_entry_compressionmethod($dat);
echo '<td><img src="_file.gif" align=absmiddle> '.$ZFic.'</td>';
echo '<td><font size=2>'.$ExpSize.' octets réels'.
'<br>'.$CompSize.' octets archivés'.
'<br>Ratio = '.$Ratio.'%'.
'<br><i>'.$CmpMethod.'</i></font></td>';
}
echo '</tr>';
}
zip_close($Zip);
echo '</table>';
echo '</font>';
}
}
?>
</body>
</html>
</code>
Conclusion :
Vous pouvez toujours aller visiter
http://altert.family.free.fr/
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.