%Header
<center>
<form action='' method=get>
<input type=text name=text value=\"".htmlspecialchars($text)."\" style='width: 90%;'><input type=submit value=Найти>
</form>
</center>
".(!$text?"$current_sub[Description]":"")."
<style>
body {margin:0; padding:0; background-color:white;}
body, td {font-family:Arial, Geneva CY, Sans-Serif;}
ol.results {margin:0 0 1.7em 0px; padding:0 0 0 21px}
ol.results li {margin-bottom:1em; padding:0;;}
ol.results div.title {font-size: 13px;}
ol.results div.text {padding-bottom:0.1em;}
ol.results div.info {color:#333333; margin-top:0.3em; overflow: hidden;}
ol.results div.info a {color:#000000;}
ol.results div.info a:visited {color:#800080;}
ol.results div.info span.count {font-size:11px;}
</style>
";
$page=$curPos+0;
if (!isset($numdoc)) $numdoc=10;
else $numdoc+=0;
$html['ERROR']['complete']="<h1>%s</h1>\n";
$html['RESPONSE']['open']="<div class=\"refblock\">\n";
$html['WORDSTAT']['complete']="Статистика слов: %s<br><br>\n";
$html['RESULTS']['open']="</div>\n<ol class=\"results\" start=".(($page)*$numdoc+1).">\n";
$html['RESULTS']['close']="</ol>\n";
$html['GROUP']['open']="\t<li>\n";
$html['GROUP']['close']="\t</li>\n";
$html['TITLE']['open']="\t\t<div class=\"title\">".urldecode($info[URL])."%s";
$html['TITLE']['cdata']="%s";
$html['TITLE']['close']="</a></div>\n";
$html['HLWORD']['complete']="<b>%s</b>";
$html['HEADLINE']['open']="\t\t<div class=\"info\">%s";
$html['HEADLINE']['complete']="\t\t<div class=\"info\">%s</div>\n";
$html['HEADLINE']['cdata']="%s";
$html['HEADLINE']['close']="\t\t</div>";
$html['PASSAGES']['open']="\t\t<div class=\"text\">\n";
$html['PASSAGES']['close']="\t\t</div>\n";
$html['PASSAGE']['open']="\t\t\t<span>%s";
$html['PASSAGE']['complete']="\t\t\t<span>%s</span><br>\n";
$html['PASSAGE']['cdata']="%s";
$html['PASSAGE']['close']="</span><br>\n";
$html['PROPERTIES']['open']="\t\t<div class=\"info\"><span style=\"color:#93948D;\">".$info[HREF]." ".$info[SIZE]." ".$info[MODTIME];
$html['PROPERTIES']['close']="</span></div>\n";
function html($i,$xmlTree)
{
global $info, $html;
$xmlTree[$i]['value']=iconv("UTF-8","CP1251",$xmlTree[$i]['value']);
switch($xmlTree[$i]['tag'])
{
case 'URL': $info[URL]="<a href='".urldecode($xmlTree[$i]['value'])."'>"; $info[HREF]=$xmlTree[$i]['value']; $html['TITLE']['open']="\t\t<div class=\"title\">".$info[URL]."%s"; break;
case 'MODTIME': $Y=substr($xmlTree[$i]['value'],0,4); $m=substr($xmlTree[$i]['value'],4,2); $d=substr($xmlTree[$i]['value'],6,2); $info[MODTIME]="$d.$m.$Y"; break;
case 'SIZE': if(!$info[TITLE][exist]) printf($html['TITLE']['open'].$html['TITLE']['close'],$info[HREF]); else $info[TITLE][exist]=0; $info[SIZE]=round($xmlTree[$i]['value']/1024)." Kb"; break;
case 'CHARSET': $info[CHARSET]=$xmlTree[$i]['value']; $html['PROPERTIES']['open']="\t\t<div class=\"info\"><span style=\"color:#93948D;\">".substr(urldecode($info[HREF]),0,100)." · ".$info[SIZE]." ".($info[MODTIME]?" · ".$info[MODTIME]:""); break;
case 'REQID': $info[REQID]=$xmlTree[$i]['value']; break;
case 'TITLE': $info[TITLE][exist]=1; if($xmlTree[$i]['type']=='complete') $html['TITLE']['complete']="\t\t<div class=\"title\">$info[URL]%s</a></div>\n"; break;
case 'FOUND': if($xmlTree[$i]['level']==5&&$xmlTree[$i]['attributes']['PRIORITY']=='strict') $info[totRows]=$xmlTree[$i]['value']; break;
}
printf($html[$xmlTree[$i]['tag']][$xmlTree[$i]['type']],htmlspecialchars($xmlTree[$i]['value']));
}
$xmlTree=array();
$xml_parser = xml_parser_create();
if ($text)
{
$fp = @fsockopen ("xmlsearch.yandex.ru", 80, $errno, $errstr, 5);
if (!$fp)
{
echo "<h1>Сервис временно недоступен</h1><error $errstr ($errno)><br>\n";
}
else
{
$data="<"."?xml version='1.0' encoding='cp1251'?".">
<request>
<query>$text << url=\"$HTTP_HOST*\"</query>
<maxpassages>3</maxpassages>
<max-title-length>100</max-title-length>
<max-headline-length>150</max-headline-length>
<max-passage-length>100</max-passage-length>
".($page?"<page>$page</page>":"")."
<groupings>
<groupby attr='d' mode='flat' groups-on-page='$numdoc' docs-in-group='1' curcateg='-1'/>
</groupings>
</request> ";
$request="POST /xmlsearch/ HTTP/1.0\r\nAccept: */*\r\nAccept-Language: ru\r\nHost: xmlsearch.yandex.ru\r\nConnection: Close\r\n";
$request.="Content-Length: ".strlen($data)."\r\n\r\n$data";
fputs ($fp, $request);
while (!feof($fp))
{
$line=fgets($fp,4000);
if (!trim($line)) break;
}
while (!feof($fp)) $xml.=fread($fp,4000);
xml_parse_into_struct ($xml_parser, $xml,$xmlTree);
unset($xml);
$num=count($xmlTree);
for($i=0;$i<$num;$i++) html($i,$xmlTree);
}
}
echo "
".opt($nav['LocalQuery']="?text=$text&q=$info[REQID]&numdoc=$numdoc","")."
".opt($nav['curPos']=$curPos,"")."
".opt($nav['maxRows']=1,"")."
".opt($nav['totRows']=ceil($info['totRows']/10),"")."
".($nav[totRows]?"<center>".browse_messages($nav, 10)."<br><b>Всего: $info[totRows]</b></center>":"")."