IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Zip] encodage des noms de fichiers


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Profil pro
    dbadmin et dev web magento
    Inscrit en
    Janvier 2006
    Messages
    47
    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 : 47
    Points : 56
    Points
    56
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Points : 44
    Points
    44
    Par défaut Re:
    Pour ma part j'utilise cette combinaison et çà fonctionne parfaitement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Membre du Club
    Profil pro
    dbadmin et dev web magento
    Inscrit en
    Janvier 2006
    Messages
    47
    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 : 47
    Points : 56
    Points
    56
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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,'-');
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'encodage des noms de fichiers
    Par fort88 dans le forum Langage
    Réponses: 3
    Dernier message: 14/04/2009, 16h36
  2. problème encodage des noms de fichiers
    Par kiopa'a dans le forum Général Python
    Réponses: 2
    Dernier message: 26/06/2007, 12h49
  3. Supprimer les espaces des noms de fichier
    Par Cathy dans le forum Linux
    Réponses: 20
    Dernier message: 04/08/2005, 17h13
  4. récupérer des nom de fichiers en utilisant *.ext
    Par drinkmilk dans le forum ASP
    Réponses: 11
    Dernier message: 15/12/2004, 09h21
  5. Réponses: 4
    Dernier message: 10/10/2003, 18h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo