Récupérer une chaine entre parenthèse dans une variable

cs_m8x Messages postés 3 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 avril 2011 - 14 avril 2011 à 15:23
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 - 15 avril 2011 à 11:05
Bonjour à tous et à toutes !

J'ai une variable qui me sert à récupérer des informations (id, nb).
Les identifiants vont de x a xxxx et le nombre va de x a xxx.
Ex : 2596, (12)
J'aimerai donc récupérer la valeur entre parenthèse afin de m'en servir dans un tri.

Après avoir pas mal cherché sur le net, je pense que je dois utiliser une expression régulière avec un regex toutefois je n'y arrive pas :

$texte = $_SESSION['commande'];
$teste = preg_match('#\(.*?\)#', $texte);
echo $teste;

Il me semble déjà inadapté d'utiliser un preg_match toutefois j'avoue être perdu à ce stade.

D'avance merci

Cordialement

6 réponses

cs_m8x Messages postés 3 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 avril 2011 1
15 avril 2011 à 09:17
Bonjour et merci de vos réponses.

J'ai finalement réussi à trouver par moi même :

<?php
function parenthese($str) {
            return substr($str, ($p = strpos($str, '(')+1), strrpos($str, ')')-$p);
        }
?>


Ce code permet donc de récupérer la valeur entre parenthèse. (le but n'est pas de les supprimer)
J'aimerai maintenant récupérer tout ce qui a avant les parenthèses.
Mon premier essaie :

<?php
function parent ( $str ) {
            preg_match ( '#(\d)\((\d)\)#', $str, $matches );
            print_r ($matches);
        }

        echo parent ($txt);
?>


Toutefois, cela me renvoie un tableau avec la valeur entre parenthèse mais pas celle avant les parenthèses.

Cordialement
1
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
14 avril 2011 à 18:56
$v = '2596, (12)';

preg_match('#\(+(.*)\)+#', $v, $result);

echo $result[1];

?
0
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
15 avril 2011 à 09:33
Le code que je t'ai donne renvoi un tableau et a l'index 0 tu a la valeur avec les parenthèse et a l'index 1 la valeur sans
0
cs_m8x Messages postés 3 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 avril 2011 1
15 avril 2011 à 10:38
Bonjour Morphinof et merci de ton aide.

En essayant ton code, avec un echo, celui-ci me renvoie Array.
En effectuant un print_r de cet array, il ne me renvoi rien.

Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Morphinof Messages postés 255 Date d'inscription vendredi 20 avril 2007 Statut Membre Dernière intervention 9 août 2013 4
15 avril 2011 à 11:05
Oui c'est normal que ca renvois un tableau, si il n'y a rien dedant c'est que tu n'as pas le pattern dans ta chaine.
0
cod57 Messages postés 1654 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
14 avril 2011 à 17:00
bonjour
si jai bien compris tu veux enlever les parenthese
a++

<?php
$var = '(12)';
$var = str_replace('(','',$var);
$var = str_replace(')','',$var);
echo $var;
?>
-1
Rejoignez-nous