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 :

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]+(&nbsp;[0-9]+)?)</b> sur <b>$ndd</b>!",$html, $href) ) {
		return trim(str_replace('&nbsp;','',$href[4]));
		return 0;
		}
& j'ai essayé de rajouter un elseif pour les autres cas.

mais cha marche pas... je ne trouve pas comment modifier la valeur recherchée. j'ai bien remplacé &nbsp, par . dans le return trim, et dans le preg_match, mais visiblement ça n'est pas si simple.

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]+(&nbsp;[0-9]+)?)</b> sur <b>$ndd</b>!",$html, $href) ) {
		return trim(str_replace('&nbsp;','',$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;
		}
Merci d'avance pour votre aide