Встраиваем поиск от google на свой сайт
Постучались в аську попросили помочь интегрировать поиск от google на сайт. Сделал простенький пример, страничку поиска. Если не поможет - я не виноват. 1. Для работы нужен PHP 5 (ну или библиотечку JSON подключить) 2. Модуль CURL, или обходиться без него (можно как файл читать или через сокеты или ещё какть, например snoopy.php) сам код инсайде. (если честно мне просто не терпится парсер php проверить)))
<?php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--РАСХОДИМСЯ! ТУТ НЕ НА ЧТО СМОТРЕТЬ!-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" />
<head>
<title>Йo, Seo!</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="Йо, Seo, Йода, Поиск"/>
<meta name="description" content="Йо, Seo! Поисковик по поисковикам. Найти и перепрятать" />
</head>
<style>
body {
margin: 0 0 0 0; padding: 20px;
font-family: georgia, verdana, "Lucida Grande", arial, helvetica, sans-serif;
font-size:16px;
font-weight:normal;
line-height:120%;
color: #333;
background: #fff url('topbluefade.gif') repeat-x;
}
form {
text-align: center;
}
div.copyright {
font-size: 11px;
color: #666;
text-align: center;
font-family: verdana, verdana, "Lucida Grande", arial, helvetica, sans-serif;
}
a {
color:#990000;
text-transform: lowercase;
}
a:visited {
color: grey;
}
</style>
<body>
<br/>
<br/>
<?php
if (isset($_GET['q'])) $q = $_GET['q']; else $q="";
?>
<form action="" method="get" onSubmit="validForm(this); return false">
<input type="text" name="q" id="q" value="<?=$q;?<" maxlength="512" size="50" style="width:300px" />
<input type="submit" value="WHARRGARBL!" />
<br/>
</form>
<br />
<?php
if ($q != ""){
$query =substr(strval($q),0,255);
//google-ajax
$query=str_replace(' ','+',$query);
//json // php5 needed
$i = 1;
for ($page = 1; $page<=2; $page++) {//lr=lang_ru
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&hl=ru&q;=".urlencode($query)."&rsz=large&start;=".$page;
///* localhost
$ch = curl_init();//curl needed
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
$body=curl_exec($ch);
curl_close($ch);
//localhost*/
//$body = file_get_contents($url); // если курла нет чемть заменить
$json = json_decode($body);
foreach ($json->responseData->results as $resultjson) {
$result_google['urls'][$i] = "<a href='".$resultjson-<unescapedUrl."' content='".$resultjson-<content."'>".$resultjson->title."</a>";
$urll="<a href=\"".$resultjson->unescapedUrl."\">".$resultjson->unescapedUrl."</a>";
$result_google['contents'][$i] = $resultjson->content;
$result_google['visibleUrl'][$i] = $resultjson->unescapedUrl;
$i++;
}
}
$resultstr = "<ol>";
for ($i = 1; $i <= count($result_google['urls']); $i++) {
$result['urls'][$k] = $result_google['urls'][$i];
$result['urlscontent'][$result['urls'][$k]] = "<img src=\"img/google.ico\" />".$result_google['contents'][$i];
if (count($result_google['urls'])>=$i){
$resultstr.="<li><div class=result-url> <img src=\"img/google.ico\" /> ".str_replace("href="," onclick=\"sendData(this)\" href=",$result_google['urls'][$i])."</div>";
$resultstr.=$result_google['contents'][$i];
$resultstr.="<br /><span style='color: rgb(0, 102, 0);'>". $result_google['visibleUrl'][$i] ." </span></li>";
$resultstr.="<br /><br />";
}
}
echo $resultstr."</ol>";
}
?>
<div class="copyright">
<a class=copyright href="http://yoseo.ru">YoSeo</a>
<br/>
Сделано с любовью.
<br/>
</div>
</body>
</html>
?>
черт. < и > надо заменить на > кавычки угловые)
Рабочий пример этого скрипта: http://localhost/yoseo.ru/www/google.php
Этот файл в архиве, чтоб с кавычками не мучаться:
http://recoilme.ru/download/google.zip