Navigation

Toutes les catégories

Filtrer par auteur

Voir les derniers articles

PHP – Fonction unzip

Cette fonction comme son nom l’indique elle permet d’unzip un fichier. Il est possible d’effacer le zip en mettant la varible wipe_zip a true. Dans le cas où le...

Publié par Team WebActus

Cette fonction comme son nom l’indique elle permet d’unzip un fichier. Il est possible d’effacer le zip en mettant la varible wipe_zip a true.

Dans le cas où le zip est corrompu ou le fichier passé en paramètre n’est pas un zip alors la fonction renvoie FALSE.

Dans le cas où tout fonctionne correctement elle retourne un tableau des noms de fichiers extraits.


[php]function unzip($file, $path= », $wipe_zip=false){
$tab_liste_fichiers = array() ; //Initialisation
$zip = zip_open($file) ;

if (is_resource($zip)) {
while ($zip_entry = zip_read($zip)) {
if (zip_entry_filesize($zip_entry) > 0){
$complete_path = $path.dirname(zip_entry_name($zip_entry)) ;
/*On supprime les éventuels caractères spéciaux et majuscules*/
$nom_fichier = zip_entry_name($zip_entry) ;
$nom_fichier = strtr($nom_fichier,
« ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ »,
« AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn ») ;
$nom_fichier = strtolower($nom_fichier) ;
$nom_fichier = preg_replace(‘/[^a-zA-Z0-9.]/’,’-‘,$nom_fichier) ;
/*On ajoute le nom du fichier dans le tableau*/
array_push($tab_liste_fichiers,$nom_fichier) ;
$complete_name = $path.$nom_fichier ;
if( !file_exists($complete_path)){
$tmp =  » ;
foreach(explode(‘/’,$complete_path) AS $k) {
$tmp .= $k.’/’ ;
if( !file_exists($tmp)){
mkdir($tmp, 0755) ;
}
}
}
/*On extrait le fichier*/
if (zip_entry_open($zip, $zip_entry, « r »)) {
$fd = fopen($complete_name, ‘w’) ;

fwrite($fd, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry))) ;

fclose($fd) ;
zip_entry_close($zip_entry) ;
}
}
}
zip_close($zip) ;

/*On efface éventuellement le fichier zip d’origine*/
if ($wipe_zip === true){
unlink($file) ;
}

return $tab_liste_fichiers ;
}
return FALSE ;

}[/php]

Newsletter WebActus

Abonnez-vous pour recevoir notre sélection des meilleurs articles directement dans votre boîte mail.

Nous ne partagerons pas votre adresse e-mail.

Articles similaires

Webmarketing

Google officialise son Nexus S et Android GingerBread 2.3

On avait appris le mois dernier que Google travaillait sur un Nexus S. Pour ceux qui me suivent sur Twitter (@WebActus), ils savaient aussi que Google devait annoncer hier la...

Publié le par Team WebActus
Webmarketing

Facebook vs Zynga

AllFacebook vient de produire une nouvelle infographie qui établit une comparaison entre Facebook (réseau social) et Zynga (plateforme de jeux sociaux). Alors qui gagne le...

Publié le par Team WebActus