|
|
|
| в скрипте PHPru_Search v2.6 не везде есть кодировки, поэтому есть несколько строчек которые у меня открылись по-китайски. И почему-то в конце поиска появляется ссылка на копирайт "PHPru_Search v2.6" - но она нерабочая.
<?
?>
<TABLE BORDER=0 WIDTH=95%>
<TR>
<TD>Результаты поиска:
<B>
<?
require ('sinc/func_list.php');
$CONFIG = file('sinc/sconfig.php'); // ôàéë êîíôèãóðàöèè
if (isset($_POST["query"]))
{
echo htmlspecialchars(trim($_POST["query"])).'</B></CENTER>';
$microtime = microtime();
$microsecs = substr($microtime, 2, 8);
$secs = substr($microtime, 11);
$start_time = "$secs.$microsecs";
$sizetotal = 0;
if ( ereg ( "[><?]+", $_POST["query"], $error_1 ))
{
?>
<BR>
Íàéäåíû çàïðåùåííûå ñèìâîëû â ñòðîêå çàïðîñà - ( <FONT COLOR=BLUE>
<?=htmlspecialchars($error_1[0])?>
</FONT> ) <BR>
<BR></TD>
</TR>
</TABLE>
<?
exit;
}
if (strlen(trim($_POST["query"])) < 3)
{
?>
<BR>
Ñëèøêîì êîðîòêèå çàïðîñû íå îáðàáàòûâàþòñÿ. Èñïîëüçóéòå íå ìåíåå 3 ñèìâîëîâ. <BR>
<BR>
</TD>
</TR>
</TABLE>
<?
exit;
}
$searchstring = trim($_POST["query"]);
$searchword = explode (" ",$searchstring); // ìàññèâ ñòðîêè çàïðîñà
$allwords = count($searchword); // ñêîëüêî ñëîâ â çàïðîñå
##################################################################
$FILE = file('sdata/search.php');
$count = count($FILE);
PHPruSearch('..','rus');
for ($x = 0; $x < $count; $x++) // âûáèðàåì ôàéë
{
list($filename,$filesize,$content,$modify) = explode('^!^',$FILE[$x],4);
$temp = explode('%^%',$content);
$true = $find = $full_result = $long = 0;
$sizetotal += $filesize;
foreach($temp as $key => $value) // âûáèðàåì ñòðîêó
{
if($allwords > 1) // åñëè áîëåå îäíîãî ñëîâà â çàïðîñå
{
if(preg_match_all("/".$searchstring."/i", $value, $ok, PREG_PATTERN_ORDER))
$new = str_replace($ok[0][0],'<FONT COLOR='.trim($CONFIG[2]).'>'.trim($CONFIG[6]).$ok[0][0].'</FONT>'.trim($CONFIG[7]), $value);
else
$new = $value;
if($new != $value)
{
$find++;
$true = 1;
$show[$find] = $new;
$full_result++;
}
}
for ($all = 0; $all < $allwords; $all++) // ïðîõîäèì ïî êàæäîìó èç ñëîâ â çàïðîñå
{
$chekfull = explode(" ",$value);
if(in_array($searchword[$all],$chekfull))
$full_result++;
$long = strlen($searchword[$all]);
if ($long > 5)
{
if(preg_match("/(ó|û|à|î|ÿ|å|è)$/i", $searchword[$all]))
$long = -1;
if(preg_match("/(è|å|î|à|û|ó)[åÿìþéèâõ]$/i", $searchword[$all]))
$long = -2;
$short = substr($searchword[$all],0,$long);
if(preg_match_all("/".$short."/i", $value, $ok, PREG_PATTERN_ORDER))
$new = str_replace($ok[0][0],'<FONT COLOR='.trim($CONFIG[2]).'>'.trim($CONFIG[6]).$ok[0][0].'</FONT>'.trim($CONFIG[7]), $value);
else
$new = $value;
if($new != $value)
{
$find++;
$true = 1;
$show[$find] = $new;
}
}
else
{
$short = $searchword[$all];
if(preg_match_all("/".$short."/i", $value, $ok, PREG_PATTERN_ORDER))
$new = str_replace($ok[0][0],'<FONT COLOR='.trim($CONFIG[2]).'>'.trim($CONFIG[6]).$ok[0][0].'</FONT>'.trim($CONFIG[7]), $value);
else
$new = $value;
if($new != $value)
{
$find++;
$true = 1;
$show[$find] = $new;
}
}
}
}
if ($true !== 0)
{
$fulltrue = 1;
echo '<BR><BR><B>'.$filename.'</B><BR><I>äàòà ïîñëåäíåãî îáíîâëåíèÿ äîêóìåíòà - '.$modify.', ðàçìeð - '.$filesize.'Kb</I><BR> íàéäåíî '.$find.' ñîâïàäåíèé ( òî÷íûõ - '.$full_result.', ïîõîæèõ - '.($find-$full_result).')<BR>ñðåäè íèõ òàêèå êàê:';
if ($find > trim($CONFIG[1])) // îãðàíè÷åíèå êîëè÷åñòâà âûâîäèìûõ ñòðîê
$STROK = trim($CONFIG[1]);
else
$STROK = $find;
for ($a = 1; $a < $STROK+1; $a++) // âûâîäèì ñîâïàäåíèÿ ïîñòðî÷íî
{
echo '<LI>...'.$show[$a].'...</LI>';
}
}
}
if(!isset($fulltrue))
echo '<BR>К сожалению, по Вашему запросу ничего не найдено!';
echo '<BR><BR><CENTER>всего обработано '.$sizetotal.'Kb в '.$count.' файлах за ';
$microtime = microtime();
$microsecs = substr($microtime, 2, 8);
$secs = substr($microtime, 11);
$end_time = "$secs.$microsecs";
$total = round(($end_time - $start_time),2);
echo $total.' сек. <BR><BR>';
PHPruRw(); flush();
if (isset($_SERVER["REMOTE_ADDR"]))
$IP = $_SERVER["REMOTE_ADDR"];
else
$IP = 'íåò äàííûõ';
$NEW = time().'^^'.$searchstring.'^^'.$_SERVER["HTTP_REFERER"].'^^'.$IP."\r\n";
PHPruSave($NEW,'sinc/query.php','a+');
}
else
echo 'Çàïðîñ íà ïîèñê íå ïîñòóïàë!<BR><BR><CENTER>';
?>
<BR>
</TD>
</TR>
</TABLE>
|
function PHPruAuth($login,$pass)
{
$_SESSION["sess_login"] = md5(trim($_POST["login"]));
$_SESSION["sess_pass"] = md5(trim($_POST["password"]));
$LOGIN = file ('admin.php');
$zero = PhpruSearch('../..','rus');
if ($_SESSION["sess_login"] === trim($LOGIN[0]) && $_SESSION["sess_pass"] === trim($LOGIN[1]))
{
$_SESSION["inside"] = 'true';
ShowArea();
}
else
{
echo '<BR><P>Äîñòóï çàêðûò!<BR><BR>Íåâåðíûé ëîãèí èëè ïàðîëü.';
ShowAdmin();
exit;
}
}
|
| |
|
|
|
|
|
|
|
для: Mister_X
(07.09.2010 в 15:13)
| | А что там с символами произошло то? Ну я понимаю, русский текст заэскейпили в хтмл... Но почему он в комментариях к коду тоже такой?
А скрипт говно. Ну честно. Если нужен поиск на пхп - почитай как это делается... Или возьми например sphinx, хотя боюсь тяжеловат будет. | |
|
|
|
|
|
|
|
для: nikita2206
(07.09.2010 в 15:19)
| | я не знаю, просто он бесплатный я скачал его, он старается ищет, но русский текст(автора) и коментары(автора) в нём не читаются.
Я не профи, а скрипт не нуждается в MySQL он пыхтит и ищет.
Правда выдаёт он в описании поиска те с символы, которые были в скрипте абракадаброй также аналогично.
Некоторые я по смыслу исправил, а с хозяином связаться не возможно phpru.net не досягаемо. Хотя ссылка "PHPru_Search v.2.6" всегда в конце выводится. Вот два варианта поиска:
Результаты поиска: мы
äàòà ïîñëåäíåãî îáíîâëåíèÿ äîêóìåíòà - 05.09.2010�. , ðàç������eð - 21Kb
íàéäåíî 2 ñîâïàäåíèé ( òî÷íûõ - 2, ïîõîæèõ - 0)
# ñðåäè íèõ òàêèå êàê:...мы совместно с клиентом стараемся представить...
# ...Мы будем рады предложить вам свои услуги...
всего обработано 21Kb в 9 файлах за 0.01 сек.
PHPru_Search v.2.6
---------------------------
или
---------------------------
Результаты поиска: Çàïðîñ íà ïîèñê íå ïîñòóïàë!
может кто знает и подскажет.
спасибо | |
|
|
|
|
|
|
|
для: nikita2206
(07.09.2010 в 15:19)
| | >А что там с символами произошло то? Ну я понимаю, русский текст заэскейпили в хтмл... Но почему он в комментариях к коду тоже такой?
Это не там произошло.
Это здесь произошло.
А вам, чем ругаться, полезно было бы сперва разобраться и понять, почему. | |
|
|
|
|
|
|
|
для: Trianon
(07.09.2010 в 22:49)
| | В смысле сам скрипт этого форума заэскейпил? | |
|
|
|
|
|
|
|
для: nikita2206
(08.09.2010 в 19:37)
| | Это делает браузер, при попытке передать символы текста сквозь форму, принадлежащую документу, кодовая страница которого не содержит таких символов.
Автоматом делает, при отправке формы.
Именно поэтому текст внутри комментариев исказился наравне с текстом внутри строк языка. | |
|
|
|
|
 15.4 Кб |
|
|
для: Trianon
(08.09.2010 в 21:22)
| | не ребята, я его скачал из интернета.
Его везде предлагают, а кода архив открыл, то в нескольких PHP был русский текст не читаем. Несколько я сам допёр, а остальные????
из прикреплённого архива WinRAR "PHPru_Search_v2.6" > index.php, indexer.php, (sinc) func_list.php
И браузер тут невинен.
Поэтому я и спросил - кто знает... | |
|
|
|