253 Membres en ligne
253 Membres en ligne
Posez vos questions concernant les Scripts et API Google AdWords dans cet espace
Guidez moi
star_border
Répondre

Google Suggest - Script Php

[ modifié ]
Top Contributeur

Bonjour,

voici un petit script PHP pour nous aider avec le Google Suggest :

 

<form  action="" method="post">
	<table><tr><td>
		Keyword : <textarea name="kw" rows="10"><?=strip_tags($_POST['kw'])?></textarea>
	</td><td>
		et <textarea name="mix2" rows="10"><?=strip_tags($_POST['mix2'])?></textarea>
	</td><td>
		<br />
		Langue : 
		<select name="lang">
			<option value="fr">FR</option>
			<option value="en">EN</option>
		</select>
		<br />
		Profondeur : 
		<select name="depth">
			<option value="1">1</option>
			<option value="2">2</option>
			<option value="3">3</option>
			<option value="4">4</option>
			<option value="5">5</option>
		</select>  
		<br />
		Alphabet :<input type="checkbox" name="alph" />
	</td></tr></table>
	<br />
	<input type="submit" value="Go" />
</form>
<?php
if(isset($_POST['kw'])){
	$lang = strip_tags($_POST["lang"]);
	if($lang == '') $lang = "fr"; 
	$depth = strip_tags($_POST["depth"]);
	if($depth == '') $depth = "1";
 
	$kwsd = array();
	$kwsd=explode("\n",trim(strip_tags($_POST["kw"])));
	foreach ($kwsd as $lst) {
		if($lst != "\n"){
			//mots cles simple
			ggSuggest($lst, $lang, $depth);
 
			//mots cles avec compléments
			$kws2 = array();
			$kws2=explode("\n",strip_tags($_POST["mix2"]));
			foreach ($kws2 as $mix2) {
				ggSuggest($lst.$mix2, $lang, $depth);
			}
 
			//alphabet
			if(strip_tags($_POST["alph"]) == "on"){
				$alpha = "a";
				while($alpha != "z"){
					ggSuggest($lst.' '.$alpha, $lang, $depth);
					$alpha = ++$alpha;
				}
			}
		}
	}
 
}
 
function ggSuggest($kw, $lang, $depth = 1, $inc = 1){	
	global $tabKw;
 
	$tabKw[] = $kw;	
    $url = 'http://www.google.com/complete/search?hl='.$lang.'&js=true&qu='. urlencode($kw);
	if (function_exists('curl_init')) {
	$header = array(
        "Accept: text/xml,application/xml,application/xhtml+xml,
		text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
        "Accept-Language: fr-fr,fr;q=0.7,en-us;q=0.5,en;q=0.3",
        "Accept-Charset: utf-8;q=0.7,*;q=0.7",
        "Keep-Alive: 300");
		$ch = curl_init();
	    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
	    curl_setopt($ch, CURLOPT_HEADER, false);
	    curl_setopt($ch, CURLOPT_VERBOSE, true);	
	    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
	    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
	    curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com/');
	    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)' );
	    curl_setopt($ch, CURLOPT_HTTPHEADER, $header );
	 	curl_setopt($ch, CURLOPT_URL, $url);
		$result=curl_exec ($ch);
		curl_close ($ch);
	} else {
		$result= file_get_contents($url);
	}
	preg_match_all('/\["(.*?)",/si', $result, $kwgoogle, PREG_SET_ORDER);//mot
	preg_match_all('/\,"(.*?)résultats",/si', $result, $nbresult, PREG_SET_ORDER);//nb resultats
 
	if ($kwgoogle=='' || $inc > $depth) {
		return $tabKw;
	}else {
		$ii = 0;
		foreach($kwgoogle as $v){	
			$tk = utf8_decode(strip_tags($v[1]));
			if(!in_array($tk, $tabKw)){ 
				$tk = str_replace ('\r',"", $tk);
				$kwr = utf8_decode($nbresult[$ii][1]);
				if($kwr == "") $kwr = 0;
				echo $kwr.' ; '.$tk.'<br />';
				$ii++;
				flush();
				ggSuggest($tk, $lang, $depth, $inc+1); 
			}
		}
	}
	return $tabKw;
}
?>

 

Pour le mettre à jour, il faut remplacer la ligne 72 :

$url = ‘http://www.google.com/complete/search?hl=’.$lang.’&js=true&qu=’. urlencode($kw);

par celle la :

$url = ‘http://www.google.fr/s?hl=’.$lang.’&cp=3&gs_id=s&xhr=t&q=’.urlencode($kw).’&pf=p’;

 

Et si vous êtes en Belgique, il suffit de passer en .be la ligne.

 

Je ne cite pas la source, c'est un site très connu mais il n'est pas trop white hat à première vue Smiley très heureux

 

 

Par contre, si il y a un programmeur qui passe par là, j'aimerais aussi avoir les résultats de Google Belgique en néerlandais.

Quelqu'un sait m'aider ? 

 

Merci Smiley heureux

Réponses des expertsverified_user

Solutions approuvées
Message signalé comme meilleure réponse.
Solution
Accepté par l'auteur du sujet Vverger
septembre 2015

Nos développeurs ont développé le script pour le Google B...

Top Contributeur

Nos développeurs ont développé le script pour le Google Belgique FR, NL, EN (merci à eux) donc voici le code.

 

Je vous invite à supprimer le "0" et le ";" qui trainent en bas pour faciliter vos copier/coller

 

<?php
//Le site très connu qui a mis au point ce script est facile à retrouver, merci de remettre son nom ici Smiley heureux
?>
<form  action="" method="post">
	<table><tr><td>
		Keyword : <textarea name="kw" rows="10"><?=strip_tags($_POST['kw'])?></textarea>
	</td><td>
		et <textarea name="mix2" rows="10"><?=strip_tags($_POST['mix2'])?></textarea>
	</td><td>
		<br />
		Langue : 
		<select name="lang">
			<option value=""> - </option>		
			<option value="fr">FR</option>
			<option value="nl">NL</option>
			<option value="en">EN</option>
		</select>
		<br />
		Profondeur : 
		<select name="depth">
			<option value="1">1</option>
			<option value="2">2</option>
			<option value="3">3</option>
			<option value="4">4</option>
			<option value="5">5</option>
		</select>  
		<br />
		Alphabet :<input type="checkbox" name="alph" />
	</td></tr></table>
	<br />
	<input type="submit" value="Go" />
</form>
<?php
if(isset($_POST['kw'])){
	$lang = strip_tags($_POST["lang"]);
	if($lang == '') $lang = "fr"; 
	$depth = strip_tags($_POST["depth"]);
	if($depth == '') $depth = "1";
 
	$kwsd = array();
	$kwsd=explode("\n",trim(strip_tags($_POST["kw"])));
	foreach ($kwsd as $lst) {
		if($lst != "\n"){
			//mots cles simple
			ggSuggest($lst, $lang, $depth);
 
			//mots cles avec compléments
			$kws2 = array();
			$kws2=explode("\n",strip_tags($_POST["mix2"]));
			foreach ($kws2 as $mix2) {
				ggSuggest($lst.$mix2, $lang, $depth);
			}
 
			//alphabet
			if(strip_tags($_POST["alph"]) == "on"){
				$alpha = "a";
				while($alpha != "z"){
					ggSuggest($lst.' '.$alpha, $lang, $depth);
					$alpha = ++$alpha;
				}
			}
		}
	}
 
}
 
function ggSuggest($kw, $lang, $depth = 1, $inc = 1){	
	global $tabKw;
 
	$tabKw[] = $kw;	
	$url = 'http://www.google.be/s?hl='.$lang.'&cp=3&gs_id=s&xhr=t&q='.urlencode($kw).'&pf=p';
	if (function_exists('curl_init')) {
	$header = array(
        "Accept: text/xml,application/xml,application/xhtml+xml,
		text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
        "Accept-Language: fr-fr,fr;q=0.7,en-us;q=0.5,en;q=0.3",
        "Accept-Charset: utf-8;q=0.7,*;q=0.7",
        "Keep-Alive: 300");
		$ch = curl_init();
	    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
	    curl_setopt($ch, CURLOPT_HEADER, false);
	    curl_setopt($ch, CURLOPT_VERBOSE, true);	
	    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
	    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
	    curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.be/');
	    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)' );
	    curl_setopt($ch, CURLOPT_HTTPHEADER, $header );
	 	curl_setopt($ch, CURLOPT_URL, $url);
		$result=curl_exec ($ch);
		curl_close ($ch);
	} else {
		$result= file_get_contents($url);
	}
	preg_match_all('/\["(.*?)",/si', $result, $kwgoogle, PREG_SET_ORDER);//mot
	preg_match_all('/\,"(.*?)résultats",/si', $result, $nbresult, PREG_SET_ORDER);//nb resultats
 
	if ($kwgoogle=='' || $inc > $depth) {
		return $tabKw;
	}else {
		$ii = 0;
		foreach($kwgoogle as $v){	
			$tk = utf8_decode(strip_tags($v[1]));
			if(!in_array($tk, $tabKw)){ 
				$tk = str_replace ('\r',"", $tk);
				$kwr = utf8_decode($nbresult[$ii][1]);
				if($kwr == "") $kwr = 0;
				echo $kwr.' ; '.$tk.'<br />';
				$ii++;
				flush();
				ggSuggest($tk, $lang, $depth, $inc+1); 
			}
		}
	}
	return $tabKw;
}
?>

Voir la solution dans l'envoi d'origine


Toutes les réponses

Ma collègue développeuse me dit qu'il manque le début du...

Top Contributeur

Ma collègue développeuse me dit qu'il manque le début du codes...Est ce le cas ? (parce que moi le php heu franchement je n'y comprends pas grand chose)

Bonjour Philippe, &nbsp; Le code est fidèle à sa source et me...

[ modifié ]
Top Contributueur Alumni

Bonjour Philippe,

 

Le code est fidèle à sa source et me semblait complet.

Je viens donc de le tester, et il fonctionne correctement chez moi.

 

 

Guillaume Toussaint
Certifié Adwords

merci guizz

Top Contributeur

merci guizz

Pareil chez moi :http://vergervalentin.franceserv.com/goo...

Top Contributeur

Pareil chez moi :http://vergervalentin.franceserv.com/googlesuggest.php 

 

Par contre si ta collègue développeuse sait nous aider pour avoir le NL de Google Belgique Smiley très heureux 

Message signalé comme meilleure réponse.
Solution
Accepté par l'auteur du sujet Vverger
septembre 2015

Nos développeurs ont développé le script pour le Google B...

Top Contributeur

Nos développeurs ont développé le script pour le Google Belgique FR, NL, EN (merci à eux) donc voici le code.

 

Je vous invite à supprimer le "0" et le ";" qui trainent en bas pour faciliter vos copier/coller

 

<?php
//Le site très connu qui a mis au point ce script est facile à retrouver, merci de remettre son nom ici Smiley heureux
?>
<form  action="" method="post">
	<table><tr><td>
		Keyword : <textarea name="kw" rows="10"><?=strip_tags($_POST['kw'])?></textarea>
	</td><td>
		et <textarea name="mix2" rows="10"><?=strip_tags($_POST['mix2'])?></textarea>
	</td><td>
		<br />
		Langue : 
		<select name="lang">
			<option value=""> - </option>		
			<option value="fr">FR</option>
			<option value="nl">NL</option>
			<option value="en">EN</option>
		</select>
		<br />
		Profondeur : 
		<select name="depth">
			<option value="1">1</option>
			<option value="2">2</option>
			<option value="3">3</option>
			<option value="4">4</option>
			<option value="5">5</option>
		</select>  
		<br />
		Alphabet :<input type="checkbox" name="alph" />
	</td></tr></table>
	<br />
	<input type="submit" value="Go" />
</form>
<?php
if(isset($_POST['kw'])){
	$lang = strip_tags($_POST["lang"]);
	if($lang == '') $lang = "fr"; 
	$depth = strip_tags($_POST["depth"]);
	if($depth == '') $depth = "1";
 
	$kwsd = array();
	$kwsd=explode("\n",trim(strip_tags($_POST["kw"])));
	foreach ($kwsd as $lst) {
		if($lst != "\n"){
			//mots cles simple
			ggSuggest($lst, $lang, $depth);
 
			//mots cles avec compléments
			$kws2 = array();
			$kws2=explode("\n",strip_tags($_POST["mix2"]));
			foreach ($kws2 as $mix2) {
				ggSuggest($lst.$mix2, $lang, $depth);
			}
 
			//alphabet
			if(strip_tags($_POST["alph"]) == "on"){
				$alpha = "a";
				while($alpha != "z"){
					ggSuggest($lst.' '.$alpha, $lang, $depth);
					$alpha = ++$alpha;
				}
			}
		}
	}
 
}
 
function ggSuggest($kw, $lang, $depth = 1, $inc = 1){	
	global $tabKw;
 
	$tabKw[] = $kw;	
	$url = 'http://www.google.be/s?hl='.$lang.'&cp=3&gs_id=s&xhr=t&q='.urlencode($kw).'&pf=p';
	if (function_exists('curl_init')) {
	$header = array(
        "Accept: text/xml,application/xml,application/xhtml+xml,
		text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
        "Accept-Language: fr-fr,fr;q=0.7,en-us;q=0.5,en;q=0.3",
        "Accept-Charset: utf-8;q=0.7,*;q=0.7",
        "Keep-Alive: 300");
		$ch = curl_init();
	    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
	    curl_setopt($ch, CURLOPT_HEADER, false);
	    curl_setopt($ch, CURLOPT_VERBOSE, true);	
	    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
	    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
	    curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.be/');
	    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)' );
	    curl_setopt($ch, CURLOPT_HTTPHEADER, $header );
	 	curl_setopt($ch, CURLOPT_URL, $url);
		$result=curl_exec ($ch);
		curl_close ($ch);
	} else {
		$result= file_get_contents($url);
	}
	preg_match_all('/\["(.*?)",/si', $result, $kwgoogle, PREG_SET_ORDER);//mot
	preg_match_all('/\,"(.*?)résultats",/si', $result, $nbresult, PREG_SET_ORDER);//nb resultats
 
	if ($kwgoogle=='' || $inc > $depth) {
		return $tabKw;
	}else {
		$ii = 0;
		foreach($kwgoogle as $v){	
			$tk = utf8_decode(strip_tags($v[1]));
			if(!in_array($tk, $tabKw)){ 
				$tk = str_replace ('\r',"", $tk);
				$kwr = utf8_decode($nbresult[$ii][1]);
				if($kwr == "") $kwr = 0;
				echo $kwr.' ; '.$tk.'<br />';
				$ii++;
				flush();
				ggSuggest($tk, $lang, $depth, $inc+1); 
			}
		}
	}
	return $tabKw;
}
?>