Мини-чат
Вы не можете добавлять сообщения в чат Зарегистрируйтесь или Войдите под своим логином!
Онлайн всего: 4
Гостей: 4
Пользователей: 0
[Кто нас сегодня посетил]
Опрос сайта
Как вам дизайн сайта?
Партнеры сайта
Топ пользователей
  • Ник: SPlesh
    Группа: VIP...
    Сообщений: 0
  • Ник: z1k
    Группа: VIP...
    Сообщений: 7
  • Ник: EXCLUSIV
    Группа: Забло...
    Сообщений: 0
  • Ник: flemqaa
    Группа: Гл.Ад...
    Сообщений: 240
  • Ник: DanonE
    Группа: Польз...
    Сообщений: 0
  • Ник: AragorN
    Группа: VIP...
    Сообщений: 1
  • Ник: Uzik
    Группа: VIP...
    Сообщений: 95
  • Ник: DuGGes
    Группа: Гл.Ад...
    Сообщений: 649
  • Ник: kapa
    Группа: Актив...
    Сообщений: 446
  • Ник: flemqaa
    Группа: Гл.Ад...
    Сообщений: 240
  • Ник: Dndz
    Группа: Прове...
    Сообщений: 179
  • Ник: Сергей
    Группа: Модер...
    Сообщений: 173
  • Ник: Mashinque
    Группа: Прове...
    Сообщений: 142
  • Ник: FerryCorsten
    Группа: Прове...
    Сообщений: 133
Новое на форуме
Теоретические основы р...
flemqaaКоличество ответов: 0
Что такое тИЦ
flemqaaКоличество ответов: 0
Качаем с Deposit'a...
flemqaaКоличество ответов: 0
Управление аккаунтом
flemqaaКоличество ответов: 0
Почти все свойства css
flemqaaКоличество ответов: 0
Фильтрация результатов поиска [php скрипт для 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-скрипт обрабатывает столько материалов, сколько возвращает поисковый скрипт сайта. Если вы хотите, чтобы скрипт работал с большим количеством результатов, чем те, которые возвращаются по умолчанию, измените соответствующую настройку в панеле управления сайтом.
Категория: PHP-скрипты для ucoz
Дата: 14.11.2011
Просмотров: 72 Комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]