rendered paste body<?php/*** Google search parser est un google sans passer par leur api* Réalisation : Nans Stefanini -> http://nans.stefanini.free.fr* Blog : http://www.22h22.fr*///renvoie une url longue raccourciefunction ShortDisplayURLggp($FullPath,$MaxLenght=65){ If (strlen($FullPath) > $MaxLenght) { //Suppression des arguments et fragment si néces"saire if (strpos($FullPath,";#",0) > 0) $FullPath = substr($FullPath,0,strpos($FullPath,"#",0)); if (strpos($FullPath,";?",0) > 0) $FullPath = substr($FullPath,0,strpos($FullPath,"?",0)); If (strlen($FullPath) > $MaxLenght) { // Decompose RL $FullPathParsed=parse_url($FullPath); // Parties minimales $RootPath = $FullPathParsed['scheme'].'://'.$FullPathParsed['host']; // Slash de fin si dossier if (substr($FullPathParsed['path'],-1) == '/') { $FullPathParsed['path'] = substr($FullPathParsed['path'],0,-1); $isFolder = TRUE; } else { $isFolder = FALSE; } $PathBaseName = basename($FullPathParsed['path']); $FullPathParsed['path'] = substr($FullPathParsed['path'],0,-1*strlen($PathBaseName)-1); // Pas besoin de citer ndex if (($PathBaseName == 'index.html') OR ($PathBaseName == 'index.php') OR ($PathBaseName == 'index.php3')) { $FullPathParsed['path'] = substr($FullPathParsed['path'],0,-1*strlen($PathBaseName)-1); $PathBaseName = basename($FullPathParsed['path']); $isFolder = TRUE; } if ($PathBaseName == '') { if (strlen($RootPath) > $MaxLenght) $RootPath = $FullPathParsed['scheme'].'://'.ShortDisplayHostggp($FullPathParsed['host'],$MaxLenght - strlen($FullPathParsed['scheme']) - 3); return $RootPath; } else if ($FullPathParsed['path'] == '') { return $RootPath.'/…/'.$PathBaseName; } else if ((strlen($RootPath)+strlen($PathBaseName)+3) >= $MaxLenght) { return $RootPath.'/…/'.$PathBaseName; } else { // Reduction du chemin while ((strlen($RootPath)+strlen($PathBaseName)+strlen($FullPathParsed['path'])+3) > $MaxLenght) { $FullPathParsed['path'] = substr($FullPathParsed['path'],0,-1*strlen(basename($FullPathParsed['path']))-1); } if ($FullPathParsed['path'] == '') { return $RootPath.'/…/'.$PathBaseName; } else { return $RootPath.$FullPathParsed['path'].'/…/'.$PathBaseName; } } } Else { return $FullPath; } } Else { return $FullPath; }}function ShortDisplayHostggp($FullHost,$MaxLenght=80){ If (strlen($FullHost) > $MaxLenght) { if (substr_count($FullHost,'.') >= 2) { return $FullHost; } else if (substr_count($FullHost,'.') == 1) { $extension = substr($FullHost,strpos($FullHost,".",0)); $FullHost = substr($FullHost,0,strpos($FullHost,".",0)); $FullHost = substr($FullHost,0,10).'(…)'.substr($FullHost,-1*(10+3+1+strlen($extension))).'.'.$extension; } else { $FullHost = substr($FullHost,0,$MaxLenght-3).'(…)'; } } else { return $FullHost; }}function ShortDisplayNameggp($FullName,$MaxLenght=50){ If (strlen($FullName) > $MaxLenght) { $FullName = substr($FullName,0,$MaxLenght-3).'(…)'; return $FullName; } else { return $FullName; }}?><?phpfunction googlesearch($req, $start='0',$lg='fr') {$index = @file_get_contents('http://www.google.fr/search?q='.urlencode($req).'&hl='.$lg.'&start='.$start);//echo tp://www.google.fr/urlencode($req$index = str_replace ('<b>', '', $index);$index = str_replace ('</b>', '', $index);/*Résultats <b>1</b> - <b>10</b> sur un total d'environ <b>1 780</b> pour <b>cogestar</b> (<b>0,15</b> secondRésultats <b>61</b> - <b>66</b> sur <b>66</b> pour <b>cogestar</b>. (<b>0,79</b> secondes) */ // nombre de liens trouvés preg_match_all('%sur[\s]*(un total d\'environ)* (([0-9 ]*)*) pour%si', $index, $nbliens); /**/$nblien = $nbliens[2][0];$nblien = str_replace (' ', '', $nblien);// si la requette ne retourne rien on quite la fonctionif (!isset($nblien)) { return 'false'; break;} preg_match_all('%\<div class=g\>(.*?)(\</div\>)%si', $index, $out); /* echo '<pre>'; print_r($out); echo '</pre>';*/$tabfin = array();foreach ($out[1] as $key => $value) { /* preg_match_all('%(\<h2 class=r.*\>)?(.*)?\</h2\>%si', $value, $out2); echo '<pre>'; print_r($out2); echo '</pre>';*/ // description $q = '\<td class="j"\>.*(\>)(..*)\<br'; // preg_match_all('%%si', $value, $out3); // liens et titre $p = '\<h2 class=r\>\<a href="(.*?)".*\>(..*)\</h2\>'; // lien titre + description preg_match_all('%'.$p.'.*'.$q.'%si', $value, $out2); /* echo '<pre>'; print_r($out2[1]); print_r($out2[2]); print_r($out2[4]); echo '</pre>'; echo '<br /><br /><br />'; */ $tabfin[$key]['lien'] = $out2[1][0]; $tabfin[$key]['titre'] = $out2[2][0]; $tabfin[$key]['description'] = $out2[4][0]; $tabfin[$key]['nbliens'] = $nblien; /* // pour rechercher les liens verts preg_match_all('%\<span class=a\s*\>\s*([-A-Z0-9+&@#/=~_|!:,.;\%]*)?.*(\</span\>)%si', $value, $out3); echo '<pre>'; print_r($out3); echo '</pre>'; */ }/* */ /* echo '<pre>'; print_r($tabfin); echo '</pre>'; echo '<br /><br /><br />'; */ return $tabfin ; }/* exemple de fonctionnement */?><form action="" method="get" ><input type="text" size="40" name="req" id="req" value="<?php if (isset ($_GET['req']) ){ echo $_GET['req'] ; }?>"><input type="submit" name="submit" value="Rechercher google" ></form><script> document.getElementById("req").focus();</script><?phpif (!isset ($_GET['pagestartgg']) ){$_GET['pagestartgg'] = 0;}if (isset($_GET['req'])) {$tabgg = googlesearch($_GET['req'],$_GET['pagestartgg']);echo 'Résultats de votre recherche : ';echo '<a href="http://www.google.fr/search?q='.urlencode($_GET['req']).'&start='.$_GET['pagestartgg'].'" target="_blank">Voir sur google</a><br /><br />';foreach ($tabgg as $key => $value) { echo '<strong><a href="'.$value['lien'].'">'.$value['titre'].'</a></strong><br />'.$value['description'].'<br /><a href="'.$value['lien'].'">'.ShortDisplayURLggp($value['lien']).'</a><br /><br />';}$nbliens = $tabgg[0]['nbliens'];echo '<br />';// mise en place des pages$nbpage = round($nbliens/10);echo '<strong>'.$nbpage. ' pages </strong><br />';$ideb = ($_GET['pagestartgg']/10)-10 ;$ideb < 0 ? $ideb = 0: '';$page = ($_GET['pagestartgg']/10);//echo 'page '.($_GET['pagestartgg']/10).'<br />';$nbpage < $ideb ? $ideb = $nbpage : '';//echo 'ideb '.$ideb.'<br />';$ifin = $ideb + 15 ;$ifin > $nbpage ? $ifin = $nbpage : '';echo '<a href="?pagestartgg=0"><<</a> '; for ($i = $ideb; $i<=$ifin; $i++) { if ($page == $i) echo '<strong> ' ; echo '<a href="?pagestartgg='.($i*10).'&req='.urlencode($_GET['req']).'">'.($i+1).'</a> '; if ($page == $i) echo ' </strong>' ; }echo ' <a href="?pagestartgg='.$nbpage.'">>></a> ';}?>