Extraire un chiffre entre des caracteres

Fermé
meskina Messages postés 50 Date d'inscription vendredi 22 juillet 2011 Statut Membre Dernière intervention 26 septembre 2013 - 6 déc. 2011 à 13:28
meskina Messages postés 50 Date d'inscription vendredi 22 juillet 2011 Statut Membre Dernière intervention 26 septembre 2013 - 12 déc. 2011 à 15:25
Bonjour,

j'ai un champ qui rassemble une chaine de caractère(1 mot ou 2 ou plus) + un chiffre entouré par des [] .
je veux une fonction qui m'extraire à chaque fois le chiffre?

merci d'avance.


A voir également:

4 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
6 déc. 2011 à 15:13
-> Expression régulières
0
Heremion Messages postés 539 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 1 juin 2022 102
6 déc. 2011 à 15:15
Bonjour Meskina,

Tu n'as pas une fonction du style StrPos, StringPos ou Pos?
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 6/12/2011 à 15:45
Salut ...
Si c'est Genre ça ! "mot1mot2[45]"
$var = 'mot1mot2[45]';
$tab = explode('[', $var);
$tab1 = explode(']', $tab[1]);      
$chiffre = $tab1[0];

Sinon ...

$var = 'mot1mot2[45]'; 
$debut = strpos($var,'[');      
if($debut) {      
    $fin = strpos($var,']');      
    if($fin) {      
        $longueur = $fin-$debut;      
        $chiffre = substr($var,$debut+1,$longueur-1);        
    }      
}

Mettez en résolu quand c'est résolu -.- ...
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
6 déc. 2011 à 15:52
Pour sécuriser, mieux vaut faire ça pour le premier exemple !
$tab = explode('[', $var);
if(isset($tab[1])) {
    $tab1 = explode(']', $tab[1]);
    if(isset($tab1[1])) {
        $chiffre = $tab1[0];    
    }
}
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
6 déc. 2011 à 17:39
C'est pas plus simple et sécure comme ça ? ;)
$var = 'mot1mot2[45]';
if (preg_match('/\[([0-9]+)\]/', $var, $aMatches)){
    echo $aMatches[1]; //affiche : 45
}
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
6 déc. 2011 à 18:10
Lol, oui, c'est juste, c'est ce que j'aller poster au début, mais ça fonctionnais pas vu que j'ai oublier quelques détails, comme le + ... :p

PS : je suis nul en expressions régulières donc ! :p
0
meskina Messages postés 50 Date d'inscription vendredi 22 juillet 2011 Statut Membre Dernière intervention 26 septembre 2013
12 déc. 2011 à 15:25
merci pour vos réponses,c'est résolu ;)
0