做个自己站内搜索引擎(3)

3,标题上加链接
foreach($array as $value){
   echo "$value"."<br>\n";
}
改成
foreach($array as $value){
   //拆开
   list($filedir,$title)=split(“[ ]”,$value,”2”);
   //输出
   echo "<a href=https://www.jb51.net/$filedir>$value</a>"."<br>\n";
}
4防止超时
如果文件比较多,那么防止PHP执行时间超时是必要的。可以在文件头加上
set_time_limit(“600”);
以秒为单位,所以上面是设10分钟为限。


所以完整的程序就是
<?php
set_time_limit("600");
//获取搜索关键字
$keyword=trim($_POST["keyword"]);
//检查是否为空
if($keyword==""){
   echo"您要搜索的关键字不能为空";
   exit;//结束程序
}
function listFiles($dir,$keyword,&$array){
   $handle=opendir($dir);
   while(false!==($file=readdir($handle))){
          if($file!="."&&$file!=".."){
          if(is_dir("$dir/$file")){
             listFiles("$dir/$file",$keyword,$array);
          }
              else{
            $data=fread(fopen("$dir/$file","r"),filesize("$dir/$file"));
                        if(eregi("<body([^>]+)>(.+)</body>",$data,$b)){
                 $body=strip_tags($b["2"]);
                        }
                        else{
                 $body=strip_tags($data);
                        }
                        if($file!="search.php"){
                            if(eregi("$keyword",$body)){
                                   if(eregi("<title>(.+)</title>",$data,$m)){
                        $title=$m["1"];
                                   }
                                   else{
                        $title="没有标题";
                                   }
                                   $array[]="$dir/$file $title";
                            }
                        }
             }
      }
   }
}
$array=array();
listFiles(".","$keyword",$array);
foreach($array as $value){
   //拆开
   list($filedir,$title)=split("[ ]",$value,"2");
   //输出
   echo "<a href=https://www.jb51.net/$filedir target=_blank>$title </a>"."<br>\n";
}
?>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/56744ef3bbad175bf123de0381228d45.html