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 :

Manipulation de string : en extraire une partie sous condition [Fait]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Par défaut Manipulation de string : en extraire une partie sous condition
    Salut,

    J'ai une chaine de caracteres qui ressemble a ca:

    photo_nomdeqqn_1647

    mais qui peut aussi ressemble a ca:

    photo_nomdeqqn_1647_21

    Comment faire pour recuperer 21 et si il n'y a pas _21 a la fin avoir FALSE ou 0 comme valeur de retour ?

    Ce que je veux, c'est recuperer 21 si et seulement si il y a un troisieme "_" dans la chaine de caractere sinon avoir 0 ou FALSE.

    Merci,
    Vincent.

  2. #2
    Membre expérimenté
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Par défaut
    un truc comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $str='photo_nomdeqqn_1647_007';
    if(preg_match('@[0-9]+\_[0-9]+$@',$str)){
    	preg_match('@[0-9]+$@',$str,$matches);
    	$mavaleur=$matches[0];
    }else{
    	$mavaleur=FALSE;	
    }

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Par défaut
    Ca marche!

    Je ne sais pas pourquoi mais je n'y arrive vraiment avec les regexp, c'est peut-etre par fleme intellectuelle aussi, peut-etre pas !


    Qqn connaitrait un bon tuto sur les regexp ?

    Merci,
    Vincent.

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Tutoriels sur les regexp en PHP sur developpez.com
    c'est une bonne base, surtout le second

  5. #5
    Membre expérimenté
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Par défaut
    Si il ne faut pas forcément que ça soit des chiffres a la fin, un truc bourrin fonctionne aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $str='photo_nomdeqqn_1647_007';
    if(preg_match('@(.*)\_(.*)\_(.*)\_(.*)$@',$str,$matches)){
    	$mavaleur=$matches[4];
    }else{
    	$mavaleur=FALSE;	
    }

  6. #6
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    version sans les regexp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function retourneFin($inNomPhoto)
    {
    if(substr_count($inNomPhoto, "_") == 3)
    {
    $indexApresDernierUnderscore = strrpos($inNomPhoto, "_") + 1;
    return substr($inNomPhoto, $indexApresDernierUnderscore , strlen($inNomPhoto) - $indexApresDernierUnderscore);
    }
    else
      return false;
    }
     
    var_dump(retourneFin("photo_nomdeqqn_1647"));
    var_dump(retourneFin("photo_nomdeqqn_1647_21"));

  7. #7
    Membre expérimenté
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Par défaut
    Au passage les preg (perl) ne pose plus de problème de vitesse face aux anciennes et tres tres tres lente ereg.

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

Discussions similaires

  1. Extraire une partie d'un string
    Par Bloodscalp dans le forum Langage
    Réponses: 9
    Dernier message: 20/09/2006, 10h43
  2. Réponses: 7
    Dernier message: 18/07/2006, 14h56
  3. Réponses: 2
    Dernier message: 21/05/2006, 19h31
  4. extraire une partie d'image d'une image source
    Par Zen_Fou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/01/2006, 11h20
  5. extraire une partie d'un document rtf
    Par yac dans le forum Oracle
    Réponses: 12
    Dernier message: 08/01/2006, 10h44

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