Фильтрация результатов поиска
В этом примере демонстрируется как с помощью php-скрипта
отфильтровать результаты поиска по сайту по букве алфавита. Скрипт
ожидает ввода поисковой фразы, после нажатия кнопки "Поиск" выполняет
POST запрос на скрипт поиска по сайту , затем структурирует полученный результат
(ответ), фильтрует его и выводит на страницу. Исходный код данного
примера приведен ниже.
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> Примечание | |||||||||
| |||||||||
|