📄 searchfunct.php
字号:
<?php
function owssize($owsQuery)
{
/*aggiunge uno spazio all'inizio e alla fine della query per poter poi fare delle ricerche esatte dei token*/
$tmpowsQuery=" " . trim($owsQuery) . " " ;
/*cerca se nella query ci sono dei token che fanno pensare che l'utente stia usando funzioni per ricerche avanzate*/
if(strstr($tmpowsQuery," \"")==FALSE && strstr($tmpowsQuery," +")==FALSE && strstr($tmpowsQuery," -")==FALSE && strstr($tmpowsQuery,"<")==FALSE && strstr($tmpowsQuery,">")==FALSE && strstr($tmpowsQuery,"* ")==FALSE)
{
if(strstr($owsQuery," ")==FALSE)
{
$tmpowsQuery="\\\"".trim($owsQuery)."\\\"";
$owsQuery=$tmpowsQuery;
}
else
{
$tmpowsQuery="+\\\"".trim($owsQuery);
$owsQuery=str_replace(" ","\\\" +\\\"",$tmpowsQuery);
$owsQuery.="\\\"";
}
}
return $owsQuery;
}
function DrawPages($page,$results,$resultsperpage,$query)
{
$lbound=0;
$rbound=0;
if($page<0)
$page=0;
if($page-10<0) $lbound=0; else $lbound=$page-10;
if($page+10>$results/$resultsperpage)
$rbound=$results/$resultsperpage;
else
$rbound=$page+10;
for($i=$lbound;$i<$rbound;$i++)
{
if($i!=$page)
printf("<font face=\"Arial\"><a href=\"search.php?search=%s&page=%d\">%d</a></font>\r\n",urlencode($query),$i,$i+1);
else
printf("<font face=\"Arial\"><b>%d </b></font>",$i+1);
}
}
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
function fSearch($search,$page,$server,$user,$pass,$database,$log,$ResultsPerPage)
{
$my_search=mysql_escape_string($search);
$connection = mysql_connect($server, $user, $pass);
if ($connection == FALSE)
die ("Error 1 [mysql_connect()]: Can't connect to mysql server");
mysql_select_db($database, $connection)
or die ("Error 2 [mysql_select_db()]");
$my_search=mysql_escape_string($search);
if($page=="")
$page=0;
$start = microtime_float();
$query = "select count(*) from pagelist where match(title,text,page) against(\"".owssize($my_search)."\" in boolean mode) ";
$result = mysql_query($query, $connection);
$row = mysql_fetch_array($result);
$resultsfound=$row[0];
//echo "<br>Query2: ".$query;
mysql_free_result($result);
if( $page>$resultsfound/$ResultsPerPage)
$page=(int)abs($resultsfound/$ResultsPerPage);
$query = "select hostname,page,title,match(title,text,hostname,page) against(\"".owssize($my_search)."\") as relevancy,0 as wrdcount,id,rank, LEFT(text, 400),level from pagelist where match(title,text,hostname,page) against(\"".owssize($my_search)."\" in boolean mode) order by wrdcount DESC,relevancy DESC,rank DESC limit ".($page*$ResultsPerPage).",".$ResultsPerPage ;
$result = mysql_query($query, $connection);
//echo "<br>Query: ".$query;
$endtime = abs(number_format(microtime_float()-$start,3));
?>
<div align="center">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td style="border: 0px solid ; font-size: 10px; font-family: Verdana;" width="100%" height="3" bgcolor="#99FFCC"> Query:
<?=htmlspecialchars($search)?>
-
<?=$resultsfound?>
results found in
<?= $endtime ?>
seconds </td>
</tr>
</table>
</div>
<?
while ($row = mysql_fetch_array($result))
{
$mText=strtolower(htmlspecialchars($row[7]));
$count=str_word_count($search);
$words=str_word_count(strtolower($search),1);
for($i=0;$i<$count;$i++)
{
$new_text=str_replace($words[$i],"<strong>".$words[$i]."</strong>", $mText);
$mText=$new_text;
}
?>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td style="border: 0px solid ; font-size: 10px; font-family: Verdana;" width="100%" height="3" bgcolor="#EAFEFF"> <B><a href="http://<? echo"$row[0]$row[1]" ?>">
<?= htmlspecialchars($row[2])?>
</a></B> <br>
<?= $mText ?>
... <br>
<font color="#006600">
<!-- Relevancy:
<?= number_format($row[3],2)?>
- -->
Word found: <? echo"$row[4]"?> - Level: <? echo"$row[8]" ?> - Rank: <? echo"$row[6]" ?> <font face="Arial" size="1"><a href="cache.php?ID=<? echo"$row[5]" ?>">Cache</a></font></font>
</p>
</tr>
</table>
<br>
<?
}
echo "<p align=\"center\">";
DrawPages($page,$resultsfound,$ResultsPerPage,htmlspecialchars($search));
echo "</p>";
$ip=getenv("REMOTE_ADDR");
if($log==1)
{
$var=fopen("query.log","a");
if($var!=NULL)
{
$tm=strftime ("%A %d %B %Y %H:%M");
$log= "$tm\t\t$ip\t\t$search\r\n";
fwrite($var,$log);
fclose($var);
}
}
else
if($log=2)
{
$query = "INSERT INTO querylist (query,results,date,time,ipaddr) VALUES('$my_search',$resultsfound,curdate(),curtime(),'$ip')";
$result = mysql_query($query, $connection);
}
mysql_close($connection);
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -