Salut tout le monde,
je viens de récupérer le script d'un ami, utile pour le suivi de mon positionnement sur les moteurs.
seul hic, une fonction de son script ne marche qu'avec google.fr
( si j'ai bien compris il s'agit d'une question de . et espace ! )
en effet, pour la requete voulue sur google.fr le résultat est :
"Résultats 1 - 10 sur un total d'environ 2 470 sur trucmachin.be (0,17 secondes)"
google.com
"Résultats 1 - 10 sur un total d'environ 2.470 sur trucmachin.be (0,17 secondes)"
la seule différence que j'y vois donc c'est le . ( point ) en place de l'espace dans le résultat "2 470".
Bref, sa requête initiale était :
& j'ai essayé de rajouter un elseif pour les autres cas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if(preg_match("!Résultats <b>([0-9]+)</b> - <b>([0-9]+)</b> sur (un total d'environ )?<b>([0-9]+( [0-9]+)?)</b> sur <b>$ndd</b>!",$html, $href) ) { return trim(str_replace(' ','',$href[4])); return 0; }
mais cha marche pas... je ne trouve pas comment modifier la valeur recherchée. j'ai bien remplacé  , par . dans le return trim, et dans le preg_match, mais visiblement ça n'est pas si simple.
Merci d'avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if(preg_match("!Résultats <b>([0-9]+)</b> - <b>([0-9]+)</b> sur (un total d'environ )?<b>([0-9]+( [0-9]+)?)</b> sur <b>$ndd</b>!",$html, $href) ) { return trim(str_replace(' ','',$href[4])); return 0; } elseif(preg_match("!Résultats <b>([0-9]+)</b> - <b>([0-9]+)</b> sur (un total d'environ )?<b>([0-9]+(.[0-9]+)?)</b> sur <b>$ndd</b>!",$html, $href) ) { return trim(str_replace('.','',$href[4])); return 0; }
Partager