Problème nettoyage referer

WRInaute accro
Bonsoir,
Voilà mon problème.
Yahoo commence depuis quelques temps à avoir certaines url (referer pour moi) sous la forme
Code:
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:
http://fr.search.yahoo.com/search?p=maquestion
mon regex ne veut pas passer (aucun remplacement n'est effectué), j'ai essayé
Code:
eregi_replace("search,[^\?]*(\?.*)","search"."\\1",$la_requete);
 
WRInaute passionné
Code:
<?php
$la_requete="http://fr.search.yahoo.com/search,_ylt=A0geupEsdSvOlGJBIBGqxjAQx.?p=maquestion";
echo eregi_replace("search,[^\?]*(\?.*)","search"."\\1",$la_requete);
?>

Si ça marche.
 
WRInaute accro
jeroen a dit:
Code:
<?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:
$ze_request=eregi_replace("search;[^\?]*(\?.*)","search"."\\1",$la_requete);
 
WRInaute accro
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
https://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 ?
 
Discussions similaires
Haut