expressions regulieres (&q=)

M.o.n.d.i.a.n.i
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 317
Inscription: 9 Juil 2005

expressions regulieres (&q=)

Message le Dim Aoû 28, 2005 20:14

Hello

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

Code: Tout sélectionner
$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?

fbparis
WRInaute impliqué
WRInaute impliqué
 
Messages: 685
Inscription: 1 Fév 2005

Message le Dim Aoû 28, 2005 20:19


M.o.n.d.i.a.n.i
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 317
Inscription: 9 Juil 2005

Message le Dim Aoû 28, 2005 20:45

: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="

M.o.n.d.i.a.n.i
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 317
Inscription: 9 Juil 2005

Message le Dim Aoû 28, 2005 20:46

M.o.n.d.i.a.n.i a écrit::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.


Mumuri
WRInaute passionné
WRInaute passionné
 
Messages: 1800
Inscription: 3 Nov 2004

Message le Dim Aoû 28, 2005 20:58

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: Tout sélectionner
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

fbparis
WRInaute impliqué
WRInaute impliqué
 
Messages: 685
Inscription: 1 Fév 2005

Message le Dim Aoû 28, 2005 21:14

M.o.n.d.i.a.n.i a écrit::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

:)

M.o.n.d.i.a.n.i
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 317
Inscription: 9 Juil 2005

Message le Dim Aoû 28, 2005 22:03

fbparis a écrit:
M.o.n.d.i.a.n.i a écrit::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
:)


maxttb
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 477
Inscription: 27 Fév 2004

Re: expressions regulieres (&q=)

Message le Mar Aoû 30, 2005 12:46

M.o.n.d.i.a.n.i a écrit:Hello

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

Code: Tout sélectionner
$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...


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités