expressions regulieres (&q=)

WRInaute occasionnel
Hello

J'utilise ce bout de code pour recuperer la query du referer

Code:
$motif = "&q=([^&]*)";

ereg($motif, "hl=fr&q=mondiani&meta=", $eregs);
foreach($eregs as $key => $value) echo "$key => $value<br>";

Mais ca m'affiche ceci:
0 => &q=mondiani
1 => mondiani

2 lignes donc au lieu d'une seule comme je m'y attendais.
Pouvez vous me suggérer une modif du motif pour n'avoir qu'une seule ligne en sortie?
 
WRInaute occasionnel
:lol: :lol: :lol:

Il y a confusion j'ai deja la query du referer.

Je voulais parler de la variable q de la query:
ce qu'il y a apres le "&q="
 
WRInaute occasionnel
M.o.n.d.i.a.n.i a dit:
:lol: :lol: :lol:

Il y a confusion j'ai deja la query du referer.

Je voulais parler de la variable q de la query:
ce qu'il y a apres le "&q="

Mon bout de code me la renvoie en double et je voudrais corriger ça.
 
WRInaute passionné
t'aura toujours deux lignes en sortie c'est la fonction ereg qui réagit comme çà.

ce que tu peux faire c'est faire ta fonction ereg

Code:
function Without_ereg($motif, $string, $eregs)
{
$ret= ereg($motif, $string, $eregs); 
return $ret[1]
}

function With_ereg($motif, $string, $eregs)
{
$ret= ereg($motif, $string, $eregs); 
return $ret[0]
}

enfin, c'est comme çà que j'avais fait perso
 
WRInaute occasionnel
fbparis a dit:
M.o.n.d.i.a.n.i a dit:
:lol: :lol: :lol:

Il y a confusion j'ai deja la query du referer.

Je voulais parler de la variable q de la query:
ce qu'il y a apres le "&q="

ah, alors je reviens a la charge avec

http://es2.php.net/manual/fr/function.parse-str.php

:)

Mouais mais ca va me renvoyer encore plus de lignes dans mon tablo :p
C'est pas grave je l'adopte tel quel! Ce sera surement plus efficace qu'une expression reguliere.

Merci à tous ceux qui se sont donnés la peine de me repondre
:)
 
WRInaute occasionnel
M.o.n.d.i.a.n.i a dit:
Hello

J'utilise ce bout de code pour recuperer la query du referer

Code:
$motif = "&q=([^&]*)";

ereg($motif, "hl=fr&q=mondiani&meta=", $eregs);
foreach($eregs as $key => $value) echo "$key => $value<br>";

Mais ca m'affiche ceci:
0 => &q=mondiani
1 => mondiani

2 lignes donc au lieu d'une seule comme je m'y attendais.
Pouvez vous me suggérer une modif du motif pour n'avoir qu'une seule ligne en sortie?
C'est tout à fait normal. Si tu regardes la documentation, tu sauras que l'index 0 contient l'ENSEMBLE de l'expression *matchée*. A partir de l'index 1, tu auras tous les sous-motifs qui ont eux aussi matché.
Si tu veux corriger ca, array_shift est ton ami...
 
Discussions similaires
Haut