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 :

Récupérer des noms de fichier


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 43
    Points : 38
    Points
    38
    Par défaut Récupérer des noms de fichier
    Bonjour,

    Je voudrais "nettoyer" les noms d'une liste de fichiers. Actuellement, les noms de fichiers sont sous cette forme :

    le nom de mon fichier 1 5556 FGKI CD
    5 le nom de mon fichier 1234 AKIL
    le nom de mon fichier
    le nom de mon fichier 3 8521 FGK UK
    12 le nom de mon fichier 80 FGK
    le nom de mon fichier 4 95 FGK OK
    le nom de mon fichier
    Je voudrais extraire tout sauf les deux OU trois derniers élément.
    Concrètement, après nettoyage ça donne ça :

    le nom de mon fichier 1
    5 le nom de mon fichier
    le nom de mon fichier
    le nom de mon fichier 3
    12 le nom de mon fichier
    le nom de mon fichier 4
    le nom de mon fichier
    J'ai un début de solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .[0-9]\d{0,9}[ \t]+[a-zA-Z]+.[a-zA-Z]+
    Mon seul problème est que les noms de fichiers commençant par un nombre sont pris en compte ...

    Comment ne pas prendre en compte le début de la chaîne ?

    Merci.

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    pourquoi un point pour commencer?
    5 le nom de mon fichier 1234 AKIL
    ya pas de solution idéale...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [0-9]*\d([a-zA-Z0-9 ]+)(?:\d[1-9]{0,5})(?:\d[A-Z]*)(?:\d[A-Z]*)

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faudrait préciser la règle : comment on sait si on doit retirer aucun, un, deux ou trois éléments ?

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 897
    Points : 6 661
    Points
    6 661
    Par défaut
    Bonjour,

    C'est vrai que ça laisse un peu dans le flou.

    À s'en tenir strictement à ton exemple avant nettoyage et à tes explications, on en déduit certaines règles, mais peut-être sont-elles incomplètes ou erronées :
    1) le nom de fichier peut être suivi d'une chaîne de plusieurs caractères pouvant se terminer par 2 ou 3 ensembles séparés d'espaces (rien de neuf sous le soleil )
    2) description des groupes :
    - le 1er groupe est constitué du 1er et du 2e ensemble qui ne vont pas l'un sans l'autre. Le 1er ensemble a 2 ou 4 chiffres (ou de 2 à 4 chiffres, ou plus peut-être?), le 2e ensemble a 3 ou 4 lettres majuscules ( peuvent-elles être minuscules?, peut-il y en avoir plus ou moins? )
    - le 2e groupe est un ensemble facultatif de 2 lettres majuscules qui ne peut exister sans le 1er.

    Face à ces incertitudes, j'ai fait 2 patterns : l'une stricte, l'autre un peu plus permissive

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    $filenames = <<<EOD
    fichier 1 1
    fichier 2 12
    fichier 3 12 ABCD
    fichier 4 12 ABCDE
    fichier 5 12 AB
    fichier 6 123 ABCD
    fichier 7 1234 ABCD
    fichier 8 1234 ABCD YZ
    fichier 9 1234 ABCD XYZ
    EOD;
     
    $pattern1 = '` \d{2}(\d{2})? [A-Z]{3,4}(?: [A-Z]{2})?$`m'; /* la stricte */
    $pattern2 = '` \d{2,} [A-Z]{3,}(?: [A-Z]{2})?$`mi'; /* la permissive */ ?>
     
    <pre><?php echo $filenames; ?></pre>
    <pre><?php echo preg_replace( $pattern1, '', $filenames ); ?></pre>
    <pre><?php echo preg_replace( $pattern2, '', $filenames ); ?></pre>

Discussions similaires

  1. [Batch] Récupérer le nom de fichier avec des caractères inconnus
    Par Christophe.G dans le forum Scripts/Batch
    Réponses: 11
    Dernier message: 26/12/2014, 16h24
  2. Récupérer des noms de fichier dans une table pour les placer en masque du tfilelist
    Par charliplanete dans le forum Développement de jobs
    Réponses: 11
    Dernier message: 24/08/2011, 17h16
  3. Récupérer des noms de fichiers dans une table ?
    Par florus dans le forum Access
    Réponses: 5
    Dernier message: 25/03/2006, 17h34
  4. Réponses: 2
    Dernier message: 21/02/2006, 10h36
  5. 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

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