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

Signaler
Messages postés
3
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
15 avril 2011
-
Messages postés
255
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
-
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

Messages postés
3
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
15 avril 2011
1
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
Messages postés
255
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3
$v = '2596, (12)';

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

echo $result[1];

?
Messages postés
255
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3
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
Messages postés
3
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
15 avril 2011
1
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
Messages postés
255
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3
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.
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
16
bonjour
si jai bien compris tu veux enlever les parenthese
a++

<?php
$var = '(12)';
$var = str_replace('(','',$var);
$var = str_replace(')','',$var);
echo $var;
?>