Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2007, 22h55   #1
Nouveau Membre du Club
 
dbadmin et dev web magento
Inscription : janvier 2006
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : dbadmin et dev web magento

Informations forums :
Inscription : janvier 2006
Messages : 42
Points : 31
Points : 31
Par défaut [Zip] encodage des noms de fichiers

Bonjour,

j'utilise la bibliothèque zip de php 5.2+ et j'ai des problèmes pour récupérés les noms des fichiers inclus dans une archive zip (créé à partir de windows).

Tout les caractères accentués se transforme généralement en "?"...
j'ai tenté de convertir le titre récupéré :
Code :
1
2
3
4
$nom_fichier = zip_entry_name($ressource_zip);
echo iconv("CP850", "ISO-8859-1",$nom_fichier);
echo iconv("CP1252", "ISO-8859-1",$nom_fichier);
echo iconv("CP850", "CP1252",$nom_fichier);
mais toujours pareil :s
dans le meilleurs des cas les caractères incompatibles sont supprimé...

Ma sortie est bien configuré en ISO et mes pages aussi. Mon installation serveur date de 2 jours.

si quelqu'un a une idée même insignifiante je serais ravie de l'entendre
xorax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 11h45   #2
Membre à l'essai
 
Inscription : mai 2007
Messages : 63
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2007
Messages : 63
Points : 22
Points : 22
Par défaut Re:

Pour ma part j'utilise cette combinaison et çà fonctionne parfaitement.
Code :
1
2
3
4
5
 
$nom_fichier = iconv("CP850", "CP1252", zip_entry_name($zip_entry)); 
$nom_fichier=strtr($nom_fichier,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
$nom_fichier = strtolower($nom_fichier);
$nom_fichier = ereg_replace('[^a-zA-Z0-9.]','-',$nom_fichier);
J'espere que j'ai répondu à ton problème.


Par contre moi j'ai voulu réaliser cela en PHP 5 et je n'arrive pas à savoir ce qu'il faut utiliser au niveau de extractTo() pour remplacer ces caractères spéciaux.

Code :
1
2
3
4
5
 
    $new_archive = new ZipArchive();
    $new_archive->open($new_archive);
    $new_archive->extractTo($path);
    unlink($new_archive);
Merci de votre aide.
The SorroW est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 02h17   #3
Nouveau Membre du Club
 
dbadmin et dev web magento
Inscription : janvier 2006
Messages : 42
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : dbadmin et dev web magento

Informations forums :
Inscription : janvier 2006
Messages : 42
Points : 31
Points : 31
humm j'ai pas test pour ton problème de extractTo.

Mais pour les caractère qui se remplace par ? j'ai trouvé plus ou moin
vu qu'il y a des caractère appartenant à CP1252 qui ne sont pas présent en ISO-8859-1 il les remplace par "?", donc faut les virer ou choisir un autre encodage de sotie intégrant ses carractère, comme UTF-8.

en complément de ta solution j'ajouterais le petit //TRANSLIT qui va bien
Code :
1
2
3
4
5
6
<?php
$nom_fichier = iconv("CP850", "ISO-8859-1//TRANSLIT", zip_entry_name($zip_entry)); 
$nom_fichier=strtr($nom_fichier,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
$nom_fichier = preg_replace('#[^a-z0-9.]+#i','-',$nom_fichier);
$nom_fichier = trim($nom_fichier,'-');
?>
xorax est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h26.


 
 
 
 
Partenaires

Hébergement Web