Например:
Среда, 24.04.2024, 10:19 Регистрация Карта сайта RSS Лента
Игровые новости Топ Сайтов Статьи Загрузить изображение Игровой форум Картинки
  • Страница 1 из 1
  • 1
Форум » Система Ucoz » PHP скрипты для Ucoz » Фильтрация результатов поиска (php скрипт для ucoz)
Фильтрация результатов поиска
Dimas777
Дата: Понедельник, 19.05.2014, 16:51 | Сообщение № 1
ICQ пользователя:
Skype пользователя:
Сайт пользователя:

Оффлайн
Сообщений: 300
Награды: 2
 


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

В шаблоне страницы:

Код
<div align="center">  
<b>Данный пример демонстрирует использование скрипта для фильтрации результатов поиска по сайту по букве алфавита</b>  
</p>  
</div>  
<hr>


PHP скрипт примера:

Код
<if ((count($Data)>0) && $GLOBALS['q'])  
{    
$___notjson=1;  
$ch = join();  
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);  
ereg("/]*?\s*class=[\'\"]?\s*eBlock\s*[\'\"]?/si",$data,$matches,PREG_OFFSET_CAPTURE);  
$data=substr($data,$matches[0][1]);  
$соответствует="none";  
preg_match_all("/]*?\s*class=[\'\"]?\s*eTitle\s*[\'\"]?.*?\с*<\/div>/я",$data,$matches);  
$mydata=array();  
$myalph=array();  
foreach ($matches[0], $key => $value)  
   {    
$mydata[$key]=array();  
$mydata[$key][0]=$value;  
ereg("/>\s*(\p{L})[^<]+ if (!isset($matches0[1]));  
$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*[\'\"]?.*?\с*<\/div>/я",$data,$matches);  
foreach ($matches[0], $key => $value) $mydata[$key][1]=$value;  
preg_match_all("/]*?\s*class=[\'\"]?\s*eDetails\s*[\'\"]?.*?\с*<\/div>/si",$data,$matches);
foreach ($matches[0], $key => $value) $mydata[$key][2]=$value;  
$html="  

";    
foreach ($myalph $key => $value) $html.=" ";  
$html.="  

      
      
";    
if (!$GLOBALS['письмо']) foreach ($mydata как $value) $html.="";  
еще foreach ($myalph[$GLOBALS['письмо']] $value) $html.="";  
$html.="  
".$значение[0].$значение[1].$значение[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(это,{тип:'script'});return false;" onerror="alert('Error');">  

Поисковый запрос: </p><input type="text" name="q" />  

<input type="submit" value="Поиск"></p>  
</form>


Примечание:

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

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

    
Game-Portals.3dn.ru - The Best.
Форум » Система Ucoz » PHP скрипты для Ucoz » Фильтрация результатов поиска (php скрипт для ucoz)
  • Страница 1 из 1
  • 1
Поиск: