View file forum/search.php

File size: 8.47Kb
<?php
#-----------------------------------------------------#
#          ********* WAP-MOTORS *********             #
#             Made by   :  VANTUZ                     #
#               E-mail  :  [email protected]             #
#                 Site  :  http://pizdec.ru           #
#             WAP-Site  :  http://visavi.net          #
#                  ICQ  :  36-44-66                   #
#  Вы не имеете право вносить изменения в код скрипта #
#-----------------------------------------------------#	
require_once"../template/start.php";
require_once"../template/regglobals.php";
require_once"../template/config.php";
require_once"../template/functions.php";
require_once"../template/maincore.php";
require_once"../template/antidos.php";
require_once"../template/cookies.php";
require_once"../template/gzip.php";
require_once"../template/header.php";
require_once"../template/referer.php";
include_once"../themes/$config_themes/index.php";


$minfindme="4"; //минимальное кол-во символов в слове для поиска
echo'<img src="../images/img/search.gif" alt="">  <b>Поиск</b><br>';

if(!isset($action)){	
	
if($config_themes!=="wml"){	
echo'<form action="search.php?event=go&amp;action=search&amp;'.SID.'" method="post">
Запрос:
 <br><input type="text" name="findme" /><br>
Тип: 
<br><select name="ftype">
<option value="0">И</option>;
<option value="1" selected>ИЛИ</option>;
<option value="2">Вся фраза целиком</option>
</select><br><br>
<input type="submit" value="Поиск" /></form><hr>';

}else{
	
echo'<br>Запрос:<br>';
echo'<input name="findme" /><br>';

echo'Тип:<br> <select name="ftype">';
echo '<option value="1">ИЛИ</option>';
echo '<option value="0">И</option>';
echo '<option value="2">Вся фраза целиком</option></select><br>';

echo'<anchor>Поиск';
echo'<go href="search.php?event=go&amp;action=search&amp;'.SID.'" method="post">';
echo'<postfield name="findme" value="$(findme)"/>';
echo'<postfield name="ftype" value="$(ftype)"/>';
echo'</go></anchor><br>--------------------<br>';	
	
}
echo '<br>Язык запросов:<br>
"И" - должны присутствовать оба слова;<br>
"ИЛИ" - есть ХОТЯ БЫ одно из слов;<br>
"Вся фраза целиком" - в искомом документе ищите фразу на 100% соответствующую вашему запросу;<br>
Скрипт ищет все данные, которые начинаются с введенной вами строки. Например, при запросе "форум" будут найдены слова "форум", "форумы", "форумом"; и многие другие.<br>';


}



if($action=="search"){



// Разбиваем $findme на слова

$findme=stripslashes($findme);
$findmeword=explode(" ",$findme);
$wordsitogo=count($findmeword);

$findme=htmlspecialchars(trim(stripslashes($findme)));
if ($findme == "" || strlen(utf_to_win($findme)) < $minfindme) {echo '<br>Ваш запрос пуст, или менее '.$minfindme.' символов!'; 


echo'<br><br><a href="search.php?'.SID.'">К поиску</a>'; 
echo'<br><a href="index.php?'.SID.'">В форум</a>'; 
echo'<br><a href="../index.php?'.SID.'">На главную</a>'; 
include_once"../themes/$config_themes/foot.php";
exit;}

// Открываем файл с темами формума и запоминаем имена файлов с сообщениями


// ПЕРВЫЙ цикл - считаем кол-во форумов (записываем в переменную $itogofid)
$mainlines = file("../local/dataforum/mainforum.dat");


$i=count($mainlines); $itogofid="0"; $number="0"; $oldid="0"; $nump="0";

do {$i--; $dt = explode("|", $mainlines[$i]);
if ($dt[0]!="razdel") {$itogofid++;} // $itogofid - общее кол-во форумов
} while($i > "0");


$fid=$itogofid; 
do {
// ВТОРОЙ цикл - открываем файл с топиком (если он существует) и сохраняем в переменную $topicsid все имена тем
if (is_file("../local/dataforum/topic$fid.dat")) {
$msglines=file("../local/dataforum/topic$fid.dat");

if (count($msglines)>0) {

$lines = file("../local/dataforum/topic$fid.dat"); $i=count($lines);
do {$i--;  $dt = explode("|", $lines[$i]); $topicsid[$i]=$dt[7];} while($i > "0"); }


// ТРЕТИЙ цикл - последовательно открываем каждую тему

if (isset($topicsid)) {

$ii=count($topicsid);
do {$ii--;
$id = str_replace("\r\n","",$topicsid[$ii]);
$file=file("../local/dataforum/$id.dat");
$iii=count($file);


// ЧЕТВЁРТЫЙ цикл - последовательно ищем в каждой теме искомое сообщение
do {$iii--; 
$lines = file("../local/dataforum/$id.dat");
$dt = explode("|", $lines[$iii]);


$msgmass=array($dt[4]); $gi="1";


///////////////////////////////////////////////

// Цикл по местам поиска (0,1,2,3,4) do {$dt=explode("|", $lines[$a1]);


do { $gi--;

$msg=$dt[4];
$msdat=$msgmass[$gi];
$stroka="0"; $wi=$wordsitogo;
// ЦИКЛ по КАЖДОМУ слову запроса !
do {$wi--;



// БЛОК УСЛОВИЙ ПОИСКА

    if ($ftype=="2") 
        {
        if (stristr($msdat,$findme))     // ПОИСК по "ВСЕЙ ФРАЗЕ ЦЕЛИКОМ" БЕЗ учёта регистра
            { 
             $stroka++;
             //$msg=eregi_replace($findme," <b><u>$findme</u></b> ",$msg);
            }
        }
     else {
           $str1=strtolower($msdat);  
           $str2=strtolower($findmeword[$wi]); 
           if ($str2!="" and strlen($str2) >= $minfindme)
              {
               if (stristr($str1,$str2)) // ПОИСК БЕЗ учёта регистра при равных прочих условиях
                  {
                   $stroka++;
                  // $msg=eregi_replace($findmeword[$wi]," <b><u>$findmeword[$wi]</u></b> ",$msg);
                  }
              }
          }




} while($wi > "0");  // конец ЦИКЛа по КАЖДОМУ слову запроса


// Подготавливаем результирующее сообщение, и если результат соответствует условиям - выводим его
if ($ftype=="0") {  if ($stroka==$wordsitogo) {$echoflag="1";}  }
if ($ftype=="1") {  if ($stroka>"0") {$echoflag="1";}  }
if ($ftype=="2") {  if ($stroka==$wordsitogo) {$echoflag="1";}  }



if (!isset($echoflag)) {$echoflag="0";}
    if ($echoflag=="1")
       {//$msg=str_replace("<br>", " &nbsp;&nbsp;", $msg); // заменяем в сообщении <br> на пару пробелов


if (strlen($msg)>150)
{
 $ma=strpos($msg,"<b>"); if ($ma > 50) {$ma=$ma-50;} else {$ma=0;}
 $mb=strrpos($msg,">b/<"); if (($mb+50) > strlen($msg)) {$mb=strlen($msg);} else {$mb=$mb+50;}
 
 $msgtowrite="..."; $msgtowrite.=substr($msg,$ma,$mb); $msgtowrite.="...";
 $msgtowrite=substr($msg,0,400);
}
else {$msgtowrite=$msg;}

if (!isset($m)) {echo '<br>По запросу "<b>'.$findme.'</b>" найдено: <hr>'; $m="1"; }


if ($iii>$config_forumpost) {$page=floor($iii/$config_forumpost); $page=$page*$config_forumpost;} else {$page="0";}

if ($oldid!=$id and $number<50) {$number++; $msgnumber=$iii;
if ($nump>1) {$anp="$nump";} else {$anp="1";}



//$sercount[]=$msgtowrite;

echo'<div class=b><img src="../images/img/forums.gif" alt=""> ';
echo '<a href="index.php?fid='.$fid.'&amp;id='.$id.'&amp;page='.$page.'&amp;'.SID.'">'.$dt[3].'</a></div><div>';
echo 'Cообщение: '.$msgtowrite;
echo'<br>Совпадений: '.$anp.'</div>';
$echoflag="0"; $nump="0";} else {$nump++;} $oldid=$id;
	}

} while($gi > "0");  // конец ЦИКЛа по МЕСТУ поиска while($a1 < $u);
	
} while($iii > "0");

} while($ii > "0");

} // if isset($topicsid)

} // if файл topic$fid.dat НЕ пуст


$fid--;
} while($fid > "0");


if (!isset($m)) {echo '<br>По вашему запросу ничего не найдено.';}
echo'<br><a href="search.php?'.SID.'">К поиску</a>'; 
}



echo'<br><a href="index.php?'.SID.'">В форум</a>'; 
echo'<br><a href="../index.php?'.SID.'">На главную</a>'; 
include_once"../themes/$config_themes/foot.php";
?>