В шаблоне страницы:
Code
<div align="center">
<b>Данный пример демонстрирует использование скрипта для фильтрации результатов поиска по сайту по букве алфавита</b>
</p>
</div>
<hr>
<b>Данный пример демонстрирует использование скрипта для фильтрации результатов поиска по сайту по букве алфавита</b>
</p>
</div>
<hr>
PHP скрипт примера:
Code
<if ((count($_POST)>0) && $_POST['q'])
{
$___notjson=1;
$ch = curl_init();
curl_setopt_array($ch, array(CURLOPT_URL => "http://forum.ucoz.ru/search/?q=".$_POST['q'],
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 5,
CURLOPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)")
);
$data = curl_exec($ch);
curl_close($ch);
preg_match("/]*?\s*class=[\'\"]?\s*eBlock\s*[\'\"]?/si",$data,$matches,PREG_OFFSET_CAPTURE);
$data=substr($data,$matches[0][1]);
$matches="none";
preg_match_all("/]*?\s*class=[\'\"]?\s*eTitle\s*[\'\"]?.*?\s*<\/div>/i",$data,$matches);
$mydata=array();
$myalph=array();
foreach ($matches[0] as $key => $value)
{
$mydata[$key]=array();
$mydata[$key][0]=$value;
preg_match("/>\s*(\p{L})[^<]+ if (!isset($matches0[1])) next;
$matches0[1]=mb_strtoupper($matches0[1],'UTF-8');
if (!isset($myalph[$matches0[1]])) $myalph[$matches0[1]]=array();
array_push($myalph[$matches0[1]],$key);
}
preg_match_all("/]*?\s*class=[\'\"]?\s*eMessage\s*[\'\"]?.*?\s*<\/div>/i",$data,$matches);
foreach ($matches[0] as $key => $value) $mydata[$key][1]=$value;
preg_match_all("/]*?\s*class=[\'\"]?\s*eDetails\s*[\'\"]?.*?\s*<\/div>/si",$data,$matches);
foreach ($matches[0] as $key => $value) $mydata[$key][2]=$value;
$html="
";
foreach ($myalph as $key => $value) $html.=" ";
$html.="
";
if (!$_POST['letter']) foreach ($mydata as $value) $html.="";
else foreach ($myalph[$_POST['letter']] as $value) $html.="";
$html.="
".$value[0].$value[1].$value[2]."
".$mydata[$value][0].$mydata[$value][1].$mydata[$value][2]."
";
$html=str_replace("\n"," ",$html);
$html=str_replace("'","'",$html);
echo "$('#sortsearch').html('$html')";
return;
}
?>
<div id='sortsearch'></div>
<form action="/php/example005/filtersearchbyalph.php" method="post" onsubmit="_uPostForm(this,{dataType:'script'});return false;" onerror="alert('Error');">
Поисковый запрос: </p><input type="text" name="q" />
<input type="submit" value="Поиск"></p>
</form>
{
$___notjson=1;
$ch = curl_init();
curl_setopt_array($ch, array(CURLOPT_URL => "http://forum.ucoz.ru/search/?q=".$_POST['q'],
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 5,
CURLOPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)")
);
$data = curl_exec($ch);
curl_close($ch);
preg_match("/]*?\s*class=[\'\"]?\s*eBlock\s*[\'\"]?/si",$data,$matches,PREG_OFFSET_CAPTURE);
$data=substr($data,$matches[0][1]);
$matches="none";
preg_match_all("/]*?\s*class=[\'\"]?\s*eTitle\s*[\'\"]?.*?\s*<\/div>/i",$data,$matches);
$mydata=array();
$myalph=array();
foreach ($matches[0] as $key => $value)
{
$mydata[$key]=array();
$mydata[$key][0]=$value;
preg_match("/>\s*(\p{L})[^<]+ if (!isset($matches0[1])) next;
$matches0[1]=mb_strtoupper($matches0[1],'UTF-8');
if (!isset($myalph[$matches0[1]])) $myalph[$matches0[1]]=array();
array_push($myalph[$matches0[1]],$key);
}
preg_match_all("/]*?\s*class=[\'\"]?\s*eMessage\s*[\'\"]?.*?\s*<\/div>/i",$data,$matches);
foreach ($matches[0] as $key => $value) $mydata[$key][1]=$value;
preg_match_all("/]*?\s*class=[\'\"]?\s*eDetails\s*[\'\"]?.*?\s*<\/div>/si",$data,$matches);
foreach ($matches[0] as $key => $value) $mydata[$key][2]=$value;
$html="
";
foreach ($myalph as $key => $value) $html.=" ";
$html.="
";
if (!$_POST['letter']) foreach ($mydata as $value) $html.="";
else foreach ($myalph[$_POST['letter']] as $value) $html.="";
$html.="
".$value[0].$value[1].$value[2]."
".$mydata[$value][0].$mydata[$value][1].$mydata[$value][2]."
";
$html=str_replace("\n"," ",$html);
$html=str_replace("'","'",$html);
echo "$('#sortsearch').html('$html')";
return;
}
?>
<div id='sortsearch'></div>
<form action="/php/example005/filtersearchbyalph.php" method="post" onsubmit="_uPostForm(this,{dataType:'script'});return false;" onerror="alert('Error');">
Поисковый запрос: </p><input type="text" name="q" />
<input type="submit" value="Поиск"></p>
</form>
Примечание: php-скрипт обрабатывает столько материалов, сколько возвращает поисковый скрипт сайта. Если вы хотите, чтобы скрипт работал с большим количеством результатов, чем те, которые возвращаются по умолчанию, измените соответствующую настройку в панеле управления сайтом!
Мне нравится
+13
|