Recuperer une valeur entre $

Petit nouveau ! | 9 Messages

22 avr. 2008, 09:38

Bonjour à tous !!

Une fois de plus après avoir écumé bon nombre de forums et de docs, j'en appel à qui voudra bien me renseigner.
Voila mon souci:

Je fais une requête en Snmp qui me retourne

Code : Tout sélectionner

enterprises.9.9.25.1.1.1.2.2 = "CW_IMAGE$MON_IMAGE$"
Ma question est :

Comment dois-je faire pour récupérer uniquement MON_IMAGE afin de l'insérer dans ma base Postgres.

J'ai pensé faire un split mais la syntaxe reste assez vague pour moi.

Merci d'avance ^^

ViPHP
ViPHP | 4039 Messages

22 avr. 2008, 10:04

je dirais de regarder du côté des expressions rationelles (mais bon, je sors tout de suite l'armement lourd, mais il y a sans doute moyen de faire quelque chôse avec split ou explode).

Regarde du côté des fonctions preg_match et preg_match_all.

L'expression régulière qui devrait fonctionner devrait ressembler à ceci:

Code : Tout sélectionner

\$[^\$]+\$
(il me semble que le $ est un caractère réservé par regex. S'il ne l'est pas, il ne faut pas l'échapper)

Et un lien pour en lire des chôses:
http://www.siteduzero.com/tuto-3-168-1- ... e-1-2.html
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Petit nouveau ! | 9 Messages

22 avr. 2008, 10:07

Merci pour cette suggestion !!

Je pensais aussi au preg_match et preg_match_all et je suis en train de me renseigner à ce sujet.

Si d'autres personnes ont des suggestions je suis preneur !! :)


EDIT :

On m'a proposé une version qui marche bien et qui permet de récupérer uniquement MON_IMAGE dans la variable $image:

Je mets le code pour ceux qui auraient le même souci que moi :

Code : Tout sélectionner

$tmp = 'CW_IMAGE$MON_IMAGE$'; $image = substr($tmp, strpos($tmp, '$') + 1, strlen($tmp) - strpos($tmp, '$') - 2);
Bon développement à tous !!

ViPHP
ViPHP | 4039 Messages

22 avr. 2008, 12:14

Oui, avec substr, c'est pas plus mal, et sans doute plus rapide.

mais c'est moins joli..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.