Крайт делал для гугла но чет теперь не пашет гугл снова чтото поменял хз...
/*
* Граббер поиска по сайту для JohnCMS v. 2.0
* Copyright © 2010 JohnCMS.com Group All Rights Reserved.
* Coding by Krite 2010 (http://johncms.com)
*/
define('_IN_JOHNCMS', 1);
$headmod = 'search';
require_once('../incfiles/core.php');
$textl = 'Поиск по сайту';
require_once('../incfiles/head.php');
echo '<div class="phdr"><b>Поиск по сайту</b></div>';
$q = isset($_GET['q']) ? rawurlencode(trim($_GET['q'])) : ''; //Строка запроса
$host_search = 'mymulti.ru'; //URL сайта на котором ведется поиск без http:// и слэша / в конце
$go = isset($_GET['go']) ? abs(intval($_GET['go'])) : 0;
$check = isset($_GET['check']) && $_GET['check'] = 1 ? true : false;
?>
<div class="gmenu"><form action="index.php" method="get"><div>
<strong>Введите запрос:</strong>
<input type="text" name="q" value="<?php echo htmlentities(rawurldecode($q), ENT_QUOTES, 'UTF-8') ?>"/>
<input type="checkbox" name="check" value="1"<?php echo ($check === true ? ' checked="checked"':'') ?>/> Искать в сети
<input type="submit" value="Искать"/></div></form></div>
<?php
if ($q) {
$host = "http://www.google.ru/m?q=".($check === true ? $q:"site:" . $host_search . "+" . $q);
$query = http_build_query(
array(
'site' => "mobile",
'sky' => "mrdr",
'hl' => "ru",
'ie' => "utf-8",
'tbm' => "mobile",
'start' => "$go"
), '', '&'
);
if(function_exists('curl_init')) {
//Передаем свои загоовки
$header[] = 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
$header[] = 'Connection: Close';
$header[] = 'Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1';
$header[] = 'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8';
$header[] = 'User-Agent: SonyEricssonK790i/R1JG Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1';
$header[] = 'Referer: http://www.google.ru/m';
//инициализируем CURL-сессию
$ch = curl_init($host . "&" . $query);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// разрешаем переадресации
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // сохраняем все в переменную, если надо выводить на прямую закомментируй эту строку
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // тайм аут
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt($ch, CURLOPT_HEADER, false); //не передаем заголовки
curl_setopt($ch, CURLOPT_REFERER, $host); //Меняем реферер
$result = curl_exec($ch); // Выполняем весь процесс
curl_close($ch);
$pattern = "/<a class=\"p\"(.+?)href=\"(.+?)\"(.+?)>(.+?)<\/a>(.+?)<div class=\"kd\">(.+?)<\/div>/";
preg_match_all($pattern, $result, $out, PREG_SET_ORDER);
$result = $out;
$count = count($result);
if($count > 0 && !$start) {
for($i = 0; $i < $count; $i++) {
echo ($i % 2) ? '<div class="list1">':'<div class="list2">';
if(mb_substr($result[$i][2], 0, 9) == '/m/url?ei') {
$url = parse_url($result[$i][2]);
$url = html_entity_decode($url['query'], ENT_QUOTES, 'UTF-8');
parse_str($url);
$url = $q;
echo ($i + 1 + $go) . '. <a href="' . htmlentities($url, ENT_QUOTES, 'UTF-8') . '">' . str_replace(array('<b>', '</b>', ' '), array('<span style="background-color: #FFFF33">', '</span>', ' '), $result[$i][4]) . '</a>
';
} else {
echo ($i + 1 + $go) . '. <a href="' . $result[$i][2] . '">' . str_replace(array('<b>', '</b>', ' '), array('<span style="background-color: #FFFF33">', '</span>', ' '), $result[$i][4]) . '</a>
';
}
echo '<div class="sub"><span class="gray">' . str_replace(array('<b>', '</b>', ' '), array('<span style="background-color: #FFFF33">', '</span>', ' '), $result[$i][6]) . '</span></div>';
echo '</div>';
}
if($count < 10 && $go)
echo '<div class="phdr"><a href="index.php?q=' . htmlentities($q, ENT_QUOTES, 'UTF-8') . '&go='.($go-10) . ($check === true ? '&check=1':'') . '">Назад</a></div>';
if($count == 10 && $go)
echo '<div class="phdr"><a href="index.php?q=' . htmlentities($q, ENT_QUOTES, 'UTF-8') . '&go='.($go-10) . ($check === true ? '&check=1':'') . '">Назад</a> | <a href="index.php?q=' . htmlentities($q, ENT_QUOTES, 'UTF-8') . '&go='.($go+10) . ($check === true ? '&check=1':'') . '">Вперед</a></div>';
if($count == 10 && !$go)
echo '<div class="phdr"><a href="index.php?q=' . htmlentities($q, ENT_QUOTES, 'UTF-8') . '&go='.($go+10) . ($check === true ? '&check=1':'') . '">Вперед</a></div>';
} else {
echo '<div class="rmenu">Не найдено ни одного результата</div>';
}
} else {
echo '<div class="rmenu">Серевис не доступен! Отсутствует необходимая библиотека CURL.</div>';
}
}
require_once('../incfiles/end.php');