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éré seulement une partie numérique d'une chaine


Sujet :

Langage PHP

  1. #1
    Membre actif

    Homme Profil pro
    Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Inscrit en
    Juillet 2006
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 404
    Points : 241
    Points
    241
    Par défaut récupéré seulement une partie numérique d'une chaine
    Bonjour

    j'ai dans un dossier des sous dossiers qui ont des noms type:
    M124_et un commentaire avec des 123 éventuels
    R25878- et encore du texte

    après la première lettre il peut y avoir de 2 à 5 chiffres pour le moment.

    Je veux récupérer dans une chaine uniquement la partie lettre et chiffre du début pour vérification.
    Si je ne garde que les chiffres ça ne fonctionne pas car je ne veux pas les autres chiffres de la chaine.
    Je voudrais que la chaine soit testée après la première lettre, et que tant que la valeur est numérique, elle est concaté à une sous chaine
    le script voit 1 la souschaine est M1, il voit 2 la souschaine est M12 ...

    j'ai commencé ça mais je ne suis pas sur que cela soit la bonne méthode.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // si la direction est bonne
    if($dossier== opendir('./DB_videos'));
    //tant qu'il y a un dossier je lis
    while(false!==($dossiervideonom= readdir($dossier)));
    {
        //je supprime la premiere lettre
        $dossiervideo2.=mb_substr($dossiervideonom, 1);
        //après je vérifie la valeur numérique de chaque caracteère ???
    }

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    preg_match( '#([0-9]{2,5})#i', $subject, $matches);
    var_dump($matches);
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($dossier== opendir('./DB_videos'));
    C'est quoi ce point-virgule après le if ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Points : 175
    Points
    175
    Par défaut
    Bonjour,

    Quitte à récupérer la valeur voulue avec un regex comme gene69 l'a indiqué, autant supprimer le mb_substr et faire :
    preg_match('#^[A-Z][0-9]{2,}#i', $dossiervideonom, $matches);Cela t'évitera une fonction en plus et puis le chiffre peut dépasser les 5 caractère si besoin est .

    EDIT pour gene69 :
    Je veux récupérer dans une chaine uniquement la partie lettre et chiffre du début pour vérification.
    Dans toute son explication il parle d'une lettre et de plusieurs chiffres . M'enfin peut importe au moins il sait maintenant comment récupérer un peu de tout xD

  5. #5
    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
    Citation Envoyé par TERRA126 Voir le message
    Bonjour,


    preg_match('#^[A-Z][0-9]{2,}#i', $dossiervideonom, $matches);.
    oui mais ce sont les chiffres qui interessent. donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    preg_match('#^[A-Z]([0-9]{2,})#i', $dossiervideonom, $matches);
    // début de chaine
    // une seule lettre obligatoirement (éventuellement en minuscule)
    // lire et capturer au moins deux chiffres (position matches[1]) en mode gourmand (c'est a dire si j'en trouve 3 j'en retourne trois et pas 2).
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

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

Discussions similaires

  1. [Toutes versions] Extraire partie numérique d'une chaine
    Par tAKAmAkA dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/11/2009, 22h15
  2. Partie numérique d'une chaine
    Par shell_man dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/04/2009, 15h57
  3. Comment faire une partie fixe et une partie variable ?
    Par bassiste dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 11/06/2008, 15h45
  4. [Regex ?]Separer la partie numérique d'une chaine
    Par Pahcixam dans le forum Langage
    Réponses: 2
    Dernier message: 25/03/2007, 12h09
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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