Problème nettoyage referer


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19595
Inscription: 8 Aoû 2004

Problème nettoyage referer

Message le Ven Sep 14, 2007 22:07

Bonsoir,
Voilà mon problème.
Yahoo commence depuis quelques temps à avoir certaines url (referer pour moi) sous la forme
Code: Tout sélectionner
http://fr.search.yahoo.com/search,_ylt=A0geupEsdSvOlGJBIBGqxjAQx.?p=maquestion

le problème étant que si on veut afficher cette url, cela ne fonctionne pas, il faut supprimer tout ce qui est entre la virgule (à droite du search) et le ? pour donner
Code: Tout sélectionner
http://fr.search.yahoo.com/search?p=maquestion

mon regex ne veut pas passer (aucun remplacement n'est effectué), j'ai essayé
Code: Tout sélectionner
eregi_replace("search,[^\?]*(\?.*)","search"."\\1",$la_requete);

jeroen
WRInaute passionné
WRInaute passionné
 
Messages: 2461
Inscription: 30 Aoû 2002

Message le Ven Sep 14, 2007 23:02

Code: Tout sélectionner
<?php
$la_requete="http://fr.search.yahoo.com/search,_ylt=A0geupEsdSvOlGJBIBGqxjAQx.?p=maquestion";
echo eregi_replace("search,[^\?]*(\?.*)","search"."\\1",$la_requete);
?>


Si ça marche.


Eric 2A
WRInaute discret
WRInaute discret
 
Messages: 194
Inscription: 26 Fév 2006

Message le Ven Sep 14, 2007 23:05

Et en doublant les anti-slashes ?

Code: Tout sélectionner
eregi_replace("search,[^\\?]*(\\?.*)","search\\1",$la_requete);


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19595
Inscription: 8 Aoû 2004

Message le Sam Sep 15, 2007 7:32

jeroen a écrit:
Code: Tout sélectionner
<?php
$la_requete="http://fr.search.yahoo.com/search,_ylt=A0geupEsdSvOlGJBIBGqxjAQx.?p=maquestion";
echo eregi_replace("search,[^\?]*(\?.*)","search"."\\1",$la_requete);
?>


Si ça marche.
oui :oops:
En fait, ce n'était pas une virgule, mais un point virgule, mais dans la suite de mon affichage, j'avais une transformation en des ; en ,

Donc voilà la transformation opérationnelle si vous voulez avoir un lien cliquable de vos referer pour yahoo
Code: Tout sélectionner
$ze_request=eregi_replace("search;[^\?]*(\?.*)","search"."\\1",$la_requete);


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19595
Inscription: 8 Aoû 2004

Message le Sam Sep 15, 2007 13:44

Bon tant qu'on reste dans les histoires de referer, j'en ai encore d'autres problèmes de parsing.
J'utilise la fonction parse_url(), mais quand j'ai, par exemple, une personne qui recherche B&B, je n'obtient que le B :cry: avec cette fonction
de même, quand le visiteur est passé par une recherche google/adsense sur un site le referer est de la forme
http://www.google.fr/custom?cof=LW%3A59 ... +septembre
et là, je ne récupère pas la valeur de q=duathlon+septembre à cause de tous les caractères intermédiaires.
Comment faire ?


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 2 invités