Куплю скрипт поиска в интернете Яндекс xml

12
S
На сайте с 10.09.2007
Offline
8
2177

Куплю скрипт поиска в интернете Яндекс xml

Oniks
На сайте с 22.08.2005
Offline
176
#1

"куплю машину металлическую и с двигателем внутреннего сгорания"

Вы хоть бы требования к нему описали...

Профессиональные услуги фотографа в Москве и области (http://www.oniks-photo.ru/) покупаю стать и ссылки с сайтов про охоту
MD
На сайте с 11.06.2007
Offline
22
MFD
#2
spaitnet:
Куплю скрипт поиска в интернете Яндекс xml

зачем покупать?

S
На сайте с 10.09.2007
Offline
8
#3

а что можно скачать

XBons
На сайте с 28.01.2006
Offline
110
#4

Создаем файл search.php и кладем туда:

<?php

// домен сайта, лучше указывать без www., например так - yandex.ru, или оставить поле пустым,
// тогда поиск будет по тому сайту, на котором расположен скрипт.
$site_domain = "yandex.ru";
if ($site_domain == "") $site_domain = $_SERVER["HTTP_HOST"];
// Зачистим у запроса левые символы, которые позволяют пользоваться языком запросов яндекса
@$_GET["text"] = preg_replace("|[^а-яa-z\d\s-_,.]|i", "", @$_GET["text"]);
$search = iconv("WINDOWS-1251", "UTF-8", htmlspecialchars(@$_GET["text"] . " << (host=\"" . $site_domain . "\" | host=\"www." . $site_domain . "\")"));
if (strlen(htmlspecialchars($_GET["text"])) != 0) {
// Нарисуем запрос
$query = trim("<?xml version='1.0' encoding='utf-8'?>
<request>
<query>" . $search . "</query>
<maxpassages>1</maxpassages>
<groupings>
<groupby attr=\"d\" mode=\"flat\" groups-on-page=\"50\" docs-in-group=\"1\"/>
</groupings>
</request>");
// Запросим, ответ положим в $res
$res = postdata("xmlsearch.yandex.ru", "/xmlsearch", $query);
preg_match("|<error.*>(.*)</error>|siU", $res, $error);
if (isSet($error[0])) $error = iconv("UTF-8", "WINDOWS-1251", $error[0]);
preg_match("|<wordstat>(.*)</wordstat>|siU", $res, $wordstat);
if (isSet($wordstat[0])) $wordstat = iconv("UTF-8", "WINDOWS-1251", $wordstat[0]);
preg_match_all("|<group>.*<url>(.*)</url>.*<title>(.*)</title>.*(<headline>(.*)</headline>.*)?(<passage>(.*)</passage>.*)?</group>|siU", $res, $matches);
}
?>
<div class="serp">
<H1>Результаты поиска</H1>
<form id="search_form" action="search.php" style="margin: 20px 0;">
<table style="width: 350px;">
<tr>
<td>
<div class="polediv">
<input id=text type="search" name="text" style="width: 265px; border-width: 0px;" placeholder="<?=htmlspecialchars($_GET["text"])?>">
</div>
</td>
<td width="100"><input type="submit" value=" поиск "></td>
</tr>
</table>
</form>
<script type="text/javascript"><!--
var oSearchPlaceHolder = new InputPlaceholder(document.getElementById('text'), '<?=htmlspecialchars($_GET["text"])?>', '', 'empty');
--></script>
<?php
if (strlen(htmlspecialchars($_GET["text"])) != 0) {
if (!isSet($error[0])) {
if (count($matches[0]) > 0) {
echo "<ul class='searchresults'>";
for ($i = 0; $i < count($matches[0]); $i++) {
echo "<li><div><a href='" . iconv("UTF-8", "WINDOWS-1251//IGNORE", $matches[1][$i]) . "' _fcksavedurl='" . iconv("UTF-8", "WINDOWS-1251//IGNORE", $matches[1][$i]) . "' title=''>" . preg_replace("|<hlword.*>(.*)</hlword>|siU", "<b>\${1}</b>", iconv("UTF-8", "WINDOWS-1251//IGNORE", $matches[2][$i])) . "</a></div><div>" . preg_replace("|<hlword.*>(.*)</hlword>|siU", "<b>\${1}</b>", iconv("UTF-8", "WINDOWS-1251//IGNORE", $matches[6][$i])) . "</div></li>";
}
echo "</ul>";
} else {
echo "<h2>К сожалению, результаты по Вашему запросу не найдены, попробуйте переформулировать запрос</h2>";
}
} else {
echo "<h2>" . trim($error) . ".</h2>";
}
} else {
echo "<h3 style=\"color: red;\">Введите строку для поиска.</h2>";
}
?>
</div>

<?php
function postdata($host, $path, $data, $proxy = false, $proxyport = 80, $get = true) {
$buffer = true;
if( !$proxy ) $proxy = $host;
$fp = @fsockopen("tcp://".$proxy, $proxyport, $errno, $errstr, 10);
if (!$fp) {
return false;
} else {
$out = "POST http://$host$path HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Referer: $host$path\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Content-Length: ". strlen($data) ."\r\n\r\n";
fwrite($fp, $out.$data);
if($get)
{
while (!feof($fp)) {
$buffer .= fgets($fp, 1024);
}
} else {
fgets($fp, 1024);
}
fclose($fp);
}
return $buffer;
}
?>

не зыбываем регистрировать свой IP - http://xml.yandex.ru/

http://blog.onlineseo.ru/?c=msg&msg=11

S
На сайте с 10.09.2007
Offline
8
#5

Мне надо поиск в интернете а не по сайту

Oniks
На сайте с 22.08.2005
Offline
176
#6
spaitnet:
Мне надо поиск в интернете а не по сайту

Ну а что мешает убрать лишние операторы из тела запроса?!

<?php 

// Зачистим у запроса левые символы, которые позволяют пользоваться языком запросов яндекса
@$_GET["text"] = preg_replace("|[^а-яa-z\d\s-_,.]|i", "", @$_GET["text"]);
$search = iconv("WINDOWS-1251", "UTF-8", htmlspecialchars(@$_GET["text"]));
if (strlen(htmlspecialchars($_GET["text"])) != 0) {
// Нарисуем запрос
$query = trim("<?xml version='1.0' encoding='utf-8'?>
<request>
<query>" . $search . "</query>
<maxpassages>1</maxpassages>
<groupings>
<groupby attr=\"d\" mode=\"flat\" groups-on-page=\"50\" docs-in-group=\"1\"/>
</groupings>
</request>");
// Запросим, ответ положим в $res
$res = postdata("xmlsearch.yandex.ru", "/xmlsearch", $query);
preg_match("|<error.*>(.*)</error>|siU", $res, $error);
if (isSet($error[0])) $error = iconv("UTF-8", "WINDOWS-1251", $error[0]);
preg_match("|<wordstat>(.*)</wordstat>|siU", $res, $wordstat);
if (isSet($wordstat[0])) $wordstat = iconv("UTF-8", "WINDOWS-1251", $wordstat[0]);
preg_match_all("|<group>.*<url>(.*)</url>.*<title>(.*)</title>.*(<headline>(.*)</headline>.*)?(<passage>(.*)</passage>.*)?</group>|siU", $res, $matches);
}
?>
<div class="serp">
<H1>Результаты поиска</H1>
<form id="search_form" action="search.php" style="margin: 20px 0;">
<table style="width: 350px;">
<tr>
<td>
<div class="polediv">
<input id=text type="search" name="text" style="width: 265px; border-width: 0px;" placeholder="<?=htmlspecialchars($_GET["text"])?>">
</div>
</td>
<td width="100"><input type="submit" value=" поиск "></td>
</tr>
</table>
</form>
<script type="text/javascript"><!--
var oSearchPlaceHolder = new InputPlaceholder(document.getElementById('text'), '<?=htmlspecialchars($_GET["text"])?>', '', 'empty');
--></script>
<?php
if (strlen(htmlspecialchars($_GET["text"])) != 0) {
if (!isSet($error[0])) {
if (count($matches[0]) > 0) {
echo "<ul class='searchresults'>";
for ($i = 0; $i < count($matches[0]); $i++) {
echo "<li><div><a href='" . iconv("UTF-8", "WINDOWS-1251//IGNORE", $matches[1][$i]) . "' _fcksavedurl='" . iconv("UTF-8", "WINDOWS-1251//IGNORE", $matches[1][$i]) . "' title=''>" . preg_replace("|<hlword.*>(.*)</hlword>|siU", "<b>\${1}</b>", iconv("UTF-8", "WINDOWS-1251//IGNORE", $matches[2][$i])) . "</a></div><div>" . preg_replace("|<hlword.*>(.*)</hlword>|siU", "<b>\${1}</b>", iconv("UTF-8", "WINDOWS-1251//IGNORE", $matches[6][$i])) . "</div></li>";
}
echo "</ul>";
} else {
echo "<h2>К сожалению, результаты по Вашему запросу не найдены, попробуйте переформулировать запрос</h2>";
}
} else {
echo "<h2>" . trim($error) . ".</h2>";
}
} else {
echo "<h3 style=\"color: red;\">Введите строку для поиска.</h2>";
}
?>
</div>

<?php
function postdata($host, $path, $data, $proxy = false, $proxyport = 80, $get = true) {
$buffer = true;
if( !$proxy ) $proxy = $host;
$fp = @fsockopen("tcp://".$proxy, $proxyport, $errno, $errstr, 10);
if (!$fp) {
return false;
} else {
$out = "POST http://$host$path HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Referer: $host$path\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Content-Length: ". strlen($data) ."\r\n\r\n";
fwrite($fp, $out.$data);
if($get)
{
while (!feof($fp)) {
$buffer .= fgets($fp, 1024);
}
} else {
fgets($fp, 1024);
}
fclose($fp);
}
return $buffer;
}
?>
MD
На сайте с 11.06.2007
Offline
22
MFD
#7
XBons:
Создаем файл search.php и кладем туда:

<?php

// домен сайта, лучше указывать без www., например так - yandex.ru, или оставить поле пустым,
// тогда поиск будет по тому сайту, на котором расположен скрипт.
$site_domain = "yandex.ru";
if ($site_domain == "") $site_domain = $_SERVER["HTTP_HOST"];
// Зачистим у запроса левые символы, которые позволяют пользоваться языком запросов яндекса
@$_GET["text"] = preg_replace("|[^а-яa-z\d\s-_,.]|i", "", @$_GET["text"]);
$search = iconv("WINDOWS-1251", "UTF-8", htmlspecialchars(@$_GET["text"] . " << (host=\"" . $site_domain . "\" | host=\"www." . $site_domain . "\")"));
if (strlen(htmlspecialchars($_GET["text"])) != 0) {
// Нарисуем запрос
$query = trim("<?xml version='1.0' encoding='utf-8'?>
<request>
<query>" . $search . "</query>
<maxpassages>1</maxpassages>
<groupings>
<groupby attr=\"d\" mode=\"flat\" groups-on-page=\"50\" docs-in-group=\"1\"/>
</groupings>
</request>");
// Запросим, ответ положим в $res
$res = postdata("xmlsearch.yandex.ru", "/xmlsearch", $query);
preg_match("|<error.*>(.*)</error>|siU", $res, $error);
if (isSet($error[0])) $error = iconv("UTF-8", "WINDOWS-1251", $error[0]);
preg_match("|<wordstat>(.*)</wordstat>|siU", $res, $wordstat);
if (isSet($wordstat[0])) $wordstat = iconv("UTF-8", "WINDOWS-1251", $wordstat[0]);
preg_match_all("|<group>.*<url>(.*)</url>.*<title>(.*)</title>.*(<headline>(.*)</headline>.*)?(<passage>(.*)</passage>.*)?</group>|siU", $res, $matches);
}
?>
<div class="serp">
<H1>Результаты поиска</H1>
<form id="search_form" action="search.php" style="margin: 20px 0;">
<table style="width: 350px;">
<tr>
<td>
<div class="polediv">
<input id=text type="search" name="text" style="width: 265px; border-width: 0px;" placeholder="<?=htmlspecialchars($_GET["text"])?>">
</div>
</td>
<td width="100"><input type="submit" value=" поиск "></td>
</tr>
</table>
</form>
<script type="text/javascript"><!--
var oSearchPlaceHolder = new InputPlaceholder(document.getElementById('text'), '<?=htmlspecialchars($_GET["text"])?>', '', 'empty');
--></script>
<?php
if (strlen(htmlspecialchars($_GET["text"])) != 0) {
if (!isSet($error[0])) {
if (count($matches[0]) > 0) {
echo "<ul class='searchresults'>";
for ($i = 0; $i < count($matches[0]); $i++) {
echo "<li><div><a href='" . iconv("UTF-8", "WINDOWS-1251//IGNORE", $matches[1][$i]) . "' _fcksavedurl='" . iconv("UTF-8", "WINDOWS-1251//IGNORE", $matches[1][$i]) . "' title=''>" . preg_replace("|<hlword.*>(.*)</hlword>|siU", "<b>\${1}</b>", iconv("UTF-8", "WINDOWS-1251//IGNORE", $matches[2][$i])) . "</a></div><div>" . preg_replace("|<hlword.*>(.*)</hlword>|siU", "<b>\${1}</b>", iconv("UTF-8", "WINDOWS-1251//IGNORE", $matches[6][$i])) . "</div></li>";
}
echo "</ul>";
} else {
echo "<h2>К сожалению, результаты по Вашему запросу не найдены, попробуйте переформулировать запрос</h2>";
}
} else {
echo "<h2>" . trim($error) . ".</h2>";
}
} else {
echo "<h3 style=\"color: red;\">Введите строку для поиска.</h2>";
}
?>
</div>

<?php
function postdata($host, $path, $data, $proxy = false, $proxyport = 80, $get = true) {
$buffer = true;
if( !$proxy ) $proxy = $host;
$fp = @fsockopen("tcp://".$proxy, $proxyport, $errno, $errstr, 10);
if (!$fp) {
return false;
} else {
$out = "POST http://$host$path HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Referer: $host$path\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Content-Length: ". strlen($data) ."\r\n\r\n";
fwrite($fp, $out.$data);
if($get)
{
while (!feof($fp)) {
$buffer .= fgets($fp, 1024);
}
} else {
fgets($fp, 1024);
}
fclose($fp);
}
return $buffer;
}
?>


не зыбываем регистрировать свой IP - http://xml.yandex.ru/

http://blog.onlineseo.ru/?c=msg&msg=11

Вопрос а как выводить постранично.. например по 10 результатов на страницу

S
На сайте с 08.02.2007
Offline
185
#8
MFD:
Вопрос а как выводить постранично.. например по 10 результатов на страницу

Вот тут определяется, сколько всего найдено:

count($matches[0]

Создаете переменную, сколько элементов будет на странице

Исходя из общего количества строите список страниц. При клике определяете, на какой странице находитесь

Ну и вывод делаете не весь, а исходя из номера страницы заданное количество элементов

Размещаем статьи на новых посещаемых порталах (/ru/forum/966433)
MD
На сайте с 11.06.2007
Offline
22
MFD
#9
Soccerlive:

Исходя из общего количества строите список страниц. При клике определяете, на какой странице находитесь

Ну и вывод делаете не весь, а исходя из номера страницы заданное количество элементов

не совсем понятно

как?

alexdo
На сайте с 09.11.2006
Offline
146
#10
Soccerlive:
Цитата:
Сообщение от MFD
Вопрос а как выводить постранично.. например по 10 результатов на страницу

Вот тут определяется, сколько всего найдено:
count($matches[0]

Создаете переменную, сколько элементов будет на странице

Исходя из общего количества строите список страниц. При клике определяете, на какой странице находитесь

Ну и вывод делаете не весь, а исходя из номера страницы заданное количество элементов

Кто подключал этот сервис, помогите пожалуйста с этими строчками. ..а то не очень силен а программировании..

Главное результат, как не крути, процес утомляет.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий