PHP站内搜索

WBOY
WBOYOriginal
2016-06-23 14:32:152335Durchsuche

search.php文件

/**************************************************** 
原作者: uchinaboy 
特点:无需mysql支持;速度快;无需设置路径,放在哪级目录下,就搜索该目录和子目录;可以 
搜索一切文本类型的文件;显示文件相关内容;关键词自动高亮显示。 
修改内容:增加了自动分页和风格设置文件。 
搜索框代码(请单独存为html文件,如果放在search.php相同目录下,无需修改):

method="post" action="search.php"> 
 
****************************************************/ 
require ("search.inc"); 
if (function_exists("set_time_limit") && !get_cfg_var('safe_mode')){ 
set_time_limit(600);} 
function get_msg($path) { 
global $key, $i; 
$handle = opendir($path); 
while ($filename = readdir($handle)) { 
//echo $path."/".$filename."
"; 
$newpath = $path."/".$filename; 
if (is_file($newpath)) { 
$fp = fopen($newpath, "r"); 
$msg = fread($fp, filesize($newpath)); 
fclose($fp); 
match_show($key, $msg, $newpath, $filename); 

if (is_dir($path."/".$filename) && ($filename != ".") &&  ($filename != "..")) { 
//echo "

".$newpath."

"; 
get_msg($path."/".$filename); 


closedir($handle); 
return $i; 


function match_show($key, $msg, $newpath, $filename) { 
 global $ar, $i; 
 $key = chop($key); 
 if($key) { $check_type = preg_match("/.html?$/", $filename); 
 if($check_type) {$title = getHtmlTitle($msg);} 
   $msg = preg_replace("//is", "", $msg); 
   $msg = preg_replace("/]+>/", "", $msg); 
   $value = preg_match("/.*$key.*/i", $msg, $res); 
       if($value) { 

$res[0] = preg_replace("/$key/i", "$key", $res[0]); 
$k = $res[0]; 
$k = strrchr($k, "      $k = substr($k, 1, 100); 
     $k = "$key      if($title) {$m = $title;} else {$m = $filename;} 
     $i++; 
     $link = $newpath; 
     $ar[] = "$i.◆$m

" .$k."

"; 
   } 
 }else { 
   echo "请输入关键词"; 
   exit; 
 } 


function getHtmlTitle($msg) { 

       /* Locate where  is located in html file. */ <br>        $lBound = strpos($msg, '<title>') + 7; //7 is the lengh of <title>. <br> <br>        if ($lBound                 return; <br> <br>        /* Locate where  is located in html file. */ 
       $uBound = strpos($msg, '', $lBound); 

       if ($uBound                 return; 

       /* Clean HTML and PHP tags out of $title with the madness below. */ 
       $title = ereg_replace("[tnr]", '', substr($msg, $lBound, $uBound -  
$lBound)); 
       $title = trim(strip_tags($title)); 

       if (strlen($title)                 return; 

       return $title; 


$i = get_msg("."); 
if (empty($page)) $page=1; 
$maxresult=($page*20); 
$resultcount = count($ar); 
if ($resultcount%20==0) $maxpageno=$resultcount/20; 
       else $maxpageno=floor($resultcount/20)+1; 
if ($page>$maxpageno) { $page=$maxpageno; $pagemax=$resultcount-1; $pagemin=max 
(0,$result_count-20);} 
       elseif ($page==1) {$pagemin=0; $pagemax=min($result_count-1,20-1); } 
       else { $pagemin=min($resultcount-1,20*($page-1)); $pagemax=min($resultcount- 
1,$pagemin+20-1); } 
$maxresult=min($maxresult,$resultcount); 
echo "

"; 
echo "浩园软件检索结果"; 
echo "


"; 
for ($i=max(0,$maxresult-20); $i print $ar[$i]; 

echo "

"; 
echo " 已经搜索到了 $resultcount 条信息"; 
     $nextpage=$page+1; 
     $previouspage=$page-1; 
echo " --- [ 搜索下 20  
个结果
 ]"; 
echo " [ 返回上 20  
个结果
 ]"; 
exit; 

?> 

search.inc文件

 
 
 
 
 
全文检索 
 
 
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:转载 --- php配置Nächster Artikel:十大 PHP 框架