<?
php
/* ***************************************************
原作者: uchinaboy
修改:lingshidao
特点:无需mysql支持;速度快;无需设置路径,放在哪级目录下,就搜索该目录和子目录;可以搜索一切文本类型的文件;显示文件相关内容;关键词自动高亮显示。
修改内容:增加了自动分页和风格设置文件。
搜索框代码(如果放在search.php相同目录下,无需修改):<form method="post" action="search.php"><input type="text" name="key" size=40 value="">
<input type="submit" value="检索"></form>
*************************************************** */
require ( " template.php " );
echo " <p align="center"> " ;
echo " 检索结果 " ;
echo " </p><hr> " ;
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."<br>";
$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 "<BR><BR><BR>".$newpath."<BR><BR><BR>";
get_msg( $path . " / " . $filename );
}
}
closedir ( $handle );
return $i ;
}
function match_show( $key , $msg , $newpath , $filename ) {
global $i ;
$key = chop ( $key );
if ( $key ) { $check_type = preg_match ( " /.html?$/ " , $filename );
if ( $check_type ) { $title = getHtmlTitle( $msg );}
$msg = preg_replace ( " /<style>.+</style>/is " , "" , $msg );
$msg = preg_replace ( " /<[^>]+>/ " , "" , $msg );
$value = preg_match ( " /.*$key.*/i " , $msg , $res );
if ( $value ) {
if ( $title ) { $m = $title ;} else { $m = $filename ;}
$i ++ ;
$link = $newpath ;
echo " $i.◆<a href="$link">$m</a><BR><BR> " ;
}
} else {
echo " 请输入关键词 " ;
exit ;
}
}
function getHtmlTitle( $msg ) {
/* Locate where <title> is located in html file. */
$lBound = strpos ( $msg , ' <title> ' ) + 7 ; // 7 is the lengh of <title>.
if ( $lBound < 1 )
return ;
/* Locate where </TITLE> is located in html file. */
$uBound = strpos ( $msg , ' </title> ' , $lBound );
if ( $uBound < $lBound )
return ;
/* Clean HTML and PHP tags out of $title with the madness below. */
$title = ereg_replace ( " [ ] " , '' , substr ( $msg , $lBound , $uBound - $lBound ));
$title = trim ( strip_tags ( $title ));
if ( strlen ( $title ) < 1 ) // A blank title is worthless.
return ;
return $title ;
}
$i = get_msg( " . " );
echo " <hr><p align="center"> " ;
echo " 已经搜索到了 $i 条信息 " ;
?>
/* ***************************************************
原作者: uchinaboy
修改:lingshidao
特点:无需mysql支持;速度快;无需设置路径,放在哪级目录下,就搜索该目录和子目录;可以搜索一切文本类型的文件;显示文件相关内容;关键词自动高亮显示。
修改内容:增加了自动分页和风格设置文件。
搜索框代码(如果放在search.php相同目录下,无需修改):<form method="post" action="search.php"><input type="text" name="key" size=40 value="">
<input type="submit" value="检索"></form>
*************************************************** */
require ( " template.php " );
echo " <p align="center"> " ;
echo " 检索结果 " ;
echo " </p><hr> " ;
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."<br>";
$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 "<BR><BR><BR>".$newpath."<BR><BR><BR>";
get_msg( $path . " / " . $filename );
}
}
closedir ( $handle );
return $i ;
}
function match_show( $key , $msg , $newpath , $filename ) {
global $i ;
$key = chop ( $key );
if ( $key ) { $check_type = preg_match ( " /.html?$/ " , $filename );
if ( $check_type ) { $title = getHtmlTitle( $msg );}
$msg = preg_replace ( " /<style>.+</style>/is " , "" , $msg );
$msg = preg_replace ( " /<[^>]+>/ " , "" , $msg );
$value = preg_match ( " /.*$key.*/i " , $msg , $res );
if ( $value ) {
if ( $title ) { $m = $title ;} else { $m = $filename ;}
$i ++ ;
$link = $newpath ;
echo " $i.◆<a href="$link">$m</a><BR><BR> " ;
}
} else {
echo " 请输入关键词 " ;
exit ;
}
}
function getHtmlTitle( $msg ) {
/* Locate where <title> is located in html file. */
$lBound = strpos ( $msg , ' <title> ' ) + 7 ; // 7 is the lengh of <title>.
if ( $lBound < 1 )
return ;
/* Locate where </TITLE> is located in html file. */
$uBound = strpos ( $msg , ' </title> ' , $lBound );
if ( $uBound < $lBound )
return ;
/* Clean HTML and PHP tags out of $title with the madness below. */
$title = ereg_replace ( " [ ] " , '' , substr ( $msg , $lBound , $uBound - $lBound ));
$title = trim ( strip_tags ( $title ));
if ( strlen ( $title ) < 1 ) // A blank title is worthless.
return ;
return $title ;
}
$i = get_msg( " . " );
echo " <hr><p align="center"> " ;
echo " 已经搜索到了 $i 条信息 " ;
?>