<?
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 条信息
"
;
?>

430

被折叠的 条评论
为什么被折叠?



