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

Langage PHP Discussion :

Archive Phar et Nom de fichiers avec accents


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Archive Phar et Nom de fichiers avec accents
    Bonjour,

    lorsque je cherche à créer une archive Phar à partir d'un FilterIterator, j'arrive à une exception BadMethodCallException:

    BadMethodCallException
    Entry images/Gensactionassemblee/salle de contrôle.png cannot be created: phar error: invalid path "images/Gensactionassemblee/salle de contrôle.png" contains illegal character

    Est ce possible de faire accepter à Phar un fichier avec accent sans avoir à modifier le nom?

    Merci

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Il est possible que ton caractère non autorisé ne soit pas le "ô" mais l'espace...

    Personnellement, je ne mets jamais ni espace, ni caractères spéciaux dans un nom de fichier dans un site web. Les espaces parce que Unix (et Linux) n'aiment pas du tout les espaces dans les noms de fichiers, et que la plupart des serveurs PHP sont des Unix/Linux. Les caractères spéciaux parce que justement ils sont spéciaux et que c'est la porte ouverte à toutes les fenêtres si jamais il y a un truc qui n'est pas au bon encodage.
    Et du coup, je mets en place un filtre sur les fichiers uploadés via formulaire pour remplacer les espaces par des underscores et les caractères accentués par leurs équivalents non accentués.

    Donc à ta place je renommerais carrément mes fichiers, quitte à perdre un peu de temps maintenant, pour me faciliter la vie plus tard.

    Maintenant, je ne connais pas du tout Phar, donc ce que tu veux faire est peut-être possible et mon avis n'est pas forcément le plus constructif du monde
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci Celira.

    J'ai moi même l'habitude d'éviter tout espace ou accent dans les noms de fichiers.
    Seulement, je souhaite créer un script d'archivage d'un site web. Et de ce fait, je ne contrôle pas forcément comment ont été nommés les fichiers par d'autres que moi (systèmes ou utilisateurs).

    Ainsi j'aimerais pouvoir maîtriser les exceptions de ce type plutôt que d'arbitrairement modifier le nom du fichier et par là même générer un fichier non trouvé sur le site lors de la restauration...

    Peut être n'ai je pas le choix, mais je n'aime pas cette idée là.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    faut renommer tes fichiers, t'as pas trop le choix

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    une solution serait de créer une table d'alias dans un fichier ou une bdd

    id | nom du fichier avec é | nom-du-fichier-avec-e
    Conception / Dev

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Très bonne idée ça!

    Les fichiers n'ont ils pas un id unique qu'on utiliserait plutôt que le nom?

    A quoi correspond par exemple le inode?
    SplFileInfo::getInode

    Après est il possible d'ajouter à phar un fichier à partir de son inode plutôt que de son nom? J'ai des doutes, mais l'idée est à creuser plutôt que de renommer le fichier.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    utilise le md5 du fichier, l'inode c'est le numéro du fichier sur ta partition,

    mais je te déconseille tout ça, normale juste le nom de tes fichiers, de plus c'est aux personnes de les nommer correctement

Discussions similaires

  1. [Lazarus] Noms de fichiers avec accents
    Par huxxxxxx dans le forum Lazarus
    Réponses: 3
    Dernier message: 14/08/2013, 22h10
  2. [Lazarus] [1.1] TStringGrid et noms de fichiers avec accents
    Par danucc dans le forum Lazarus
    Réponses: 2
    Dernier message: 26/04/2013, 10h18
  3. [Lazarus] [1.0.4/Win XP] Nom de fichier avec accents
    Par chris78320 dans le forum Lazarus
    Réponses: 5
    Dernier message: 09/01/2013, 13h51
  4. nom de fichier avec accent
    Par chrono23 dans le forum C#
    Réponses: 3
    Dernier message: 30/05/2008, 14h27
  5. [DOM] Problème d'accent sur les noms de fichier avec mon parseur
    Par ujoodha dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 06/04/2006, 21h55

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