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