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 le nom et l'extension d'un fichier


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut Récupérer le nom et l'extension d'un fichier
    Bonjour à tous,

    je recherche un motif me permettant de récupérer le nom et l'extension d'un fichier susceptible de contenir plusieurs point (.) que ce soit sur windows ou Linux...

    Pour le moment, j'ai (ne rigolez pas ) :
    preg_match('~(*)\.(*)$~', $str, $matches)

    Merci d'avance pour votre aide...

  2. #2
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Bonjour,
    Tu peux essayer cela, et me dire ce que ca donne : je ne l'ai pas testé.
    preg_match('~\\([^\\]+)$~', $str, $matches)

    [edit] : tu veux eliminer le chemin et recuperer le nom de fichier et son extension ?

    Z.

  3. #3
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    hum substr($filename, strrpos($filename, '.')) ? Une extension c'est juste la dernière partie normalement (exception faite du .tar.gz qui est particulier)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    une facon de faire (à mettre dans une fonction éventuellement) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
       $nom_fichier = 'qsdfsdf.dthvsdtr.xdcd.qsdfqsdF.qsdf.jpg';
       // decoupage de la chaine
       $tabfile = explode('.',$nom_fichier);
       // extension = le dernier element
       $extension = $tabfile[sizeof($tabfile)-1];
       // nom du fichier sans extension : longueur nom - longueur ext - 1 (le point)
       $nom_fichier_sans_extension = substr($nom_fichier,0,strlen($nom_fichier)-strlen($extension)-1);
    ?>

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Il y a une fonction native pour ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
      $nom_fichier = 'qsdfsdf.dthvsdtr.xdcd.qsdfqsdF.qsdf.jpg';
      $element = pathinfo($nom_fichier);
     
      echo 'nom => ' . $element['filename'] . '<br>' . 'extension => ' . $element['extension'];
    ?>

  6. #6
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    oui voila ça revien toujours au même principe de fonctions de base sans avoir besoin des regex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $basename = substr($filename, 0, strrpos($filename, '.'));
    $extension = substr($filename, strrpos($filename, '.')+1);

  7. #7
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    merci à vous pour votre aide...

    Zwiter > ton motif ne marche pas et oui, je souhaite récupérer le nom et l'extension du fichier comme annoncé dans le premier post

    Korko Fain > justement je dois gérer tous les cas (même particulier)

    jreaux62 > je recherche un motif regex...

    jeca > ça doit fonctionner sous PHP 5.1.4


  8. #8
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ( preg_match('#^(.*)\.([^.]*)$#', $str, $match) ) {
        echo "nom = ".$match[1];
        echo "ext = ".$match[2];
    }
    Mais utiliser les fonctions natives est tout aussi bien.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    A priori, ça fonctionne depuis php 4.0.3

  10. #10
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    s.n.a.f.u. > ton motif ne marche pas à tous les coups

    jeca >
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Historique
    Version 	Description
    5.2.0 		La constante PATHINFO_FILENAME a été ajoutée.
    bon sinon voici un motif qui me semble pas mal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('/^(.*)([^\\\/]*)\.([^\.]*)$/iU', '/ff/wxh_623x608.xxx.abc', $result);
    donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Array
    (
        [0] => /ff/wxh_623x608.xxx.abc
        [1] => /ff/
        [2] => wxh_623x608.xxx
        [3] => abc
    )
    D'après mes tests, il gère un chemin (Windows et Linux).
    $result[1] > le chemin
    $result[2] > le nom du fichier sans extension
    $result[3] > l'extension

    Quand pensez-vous ?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par jeca Voir le message
    Bonjour,

    Il y a une fonction native pour ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
      $nom_fichier = 'qsdfsdf.dthvsdtr.xdcd.qsdfqsdF.qsdf.jpg';
      $element = pathinfo($nom_fichier);
     
      echo 'nom => ' . $element['filename'] . '<br>' . 'extension => ' . $element['extension'];
    ?>
    merci ! simple et rapide

Discussions similaires

  1. [AC-2010] Pièce-jointe : récupérer le nom sans l'extension
    Par vittirivizzik dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/03/2013, 15h32
  2. [DOM] Récupérer le nom du premier noeud d'un fichier XML en PHP
    Par ePsymon dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 08/02/2008, 09h17
  3. récupérer le nom d'un utilisateur d'un fichier
    Par fabrice44 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 01/02/2008, 19h54
  4. Réponses: 0
    Dernier message: 04/01/2008, 15h00
  5. Formulaire >> Isoler le nom et l'extension d'un fichier
    Par Ceubex dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/07/2006, 00h25

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