Visualiser le contenu d'un fichier *.zip

Description

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>&nbsp;<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/

Codes Sources

A voir également