Главная - Все для web-мастера uCoz

Фильтрация результатов поиска

Фильтрация результатов поиска
В этом примере демонстрируется как с помощью php-скрипта отфильтровать результаты поиска по сайту по букве алфавита. Скрипт ожидает ввода поисковой фразы, после нажатия кнопки "Поиск" выполняет POST запрос на скрипт поиска по сайту (в данном примере поиск проходит по сайту forum.ucoz.ru), затем структурирует полученный результат (ответ), фильтрует его и выводит на страницу. Исходный код данного примера приведен ниже.
В шаблоне страницы:

Code
<div align="center">  
  <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>


Примечание:

php-скрипт обрабатывает столько материалов, сколько возвращает поисковый скрипт сайта. Если вы хотите, чтобы скрипт работал с большим количеством результатов, чем те, которые возвращаются по умолчанию, измените соответствующую настройку в панеле управления сайтом.

Источник: Не указан

Просмотров: 1059 | Написал: (o)-$erega-(o) | Дата: 10.04.2012 | Комментарии: (0)

info
Гостям нельзя оставлять комментарии. Зарегистрируйтесь или войдите под своим профилем

vk
Рекомендуем
Мини-чат
23:26
gameaslife
Парни помогите ! http://xn--g1acecr2a.xn--p1ai/board/skripty_ucoz/bot_dlja_mini_chata/1-1-0-581

19:05
380971489511
А как делать фон на сайте?

17:31
ferr-um
Страница материала - http://укозик.рф/board/skripty/umenshaem_izobrazhenija_v_informerakh_kommentakh/5-1-0-444

17:31
ferr-um
Скрипт хорош, решил потестировать и даже больше - использовать его и для уменьшения видео, так вот вроде бы все работает на IE и MF но вот Google Chrome вроде бы воспринимает скрипт, но после перезагрузки страницы картинки снова увеличенные ( кстати видео не увеличивается ) в чем может быть проблема? Заранее спасибо.

17:31
ferr-um
Я так понял сообщение отправить пока нет возможности, но вот ответ на вопрос хотелось бы получить, так как очень нужно и так:

23:02
Kulac
по моему, выглядит капельку лучше

00:51
Montik
Супер

04:46
Admin
Всем привет! Сайт переехал на новый хостинг!

Для добавления необходима авторизация
Реклама
Статистика
Яндекс.Метрика

Онлайн всего: 1
Гостей: 1
Пользователей: 0