免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2060 | 回复: 0
打印 上一主题 下一主题

php从文件中搜索关键字方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-18 14:19 |只看该作者 |倒序浏览
php从文件中搜索关键字方法
  1. <?php
  2. set_time_limit("600");  //以秒为单位,所以是设10分钟为限
  3. $keyword = trim($_POST["keyword"]);  //要搜索的关键字

  4. if($keyword == ""){
  5.   echo "您要搜索的关键字不能为空!<a href=../search/>返回</a>";
  6.   exit(); //结束程序
  7. }



  8. //$dir是搜索的目录  $keyword是关键字  $array是存放的数组
  9. //遍历所有文件
  10. function listFiles($dir,$keyword,$array){
  11.   global $array;  //把传过来的数组定义成全局的,在方法外面就能从数组里取到值了
  12.   $handle = opendir($dir);
  13.   while (false !== ($file = readdir($handle))){
  14.    if ($file!="." && $file!=".."){
  15.     //如果还是目录继续搜索
  16.     if(is_dir("$dir/$file")){
  17.      listFiles("$dir/$file",$keyword,$array);
  18.     }
  19.     else{
  20.      
  21.      //读取文件内容
  22.      $data = fread(fopen("$dir/$file","r"),filesize("$dir/$file"));
  23.      //只在<body>和</body>之间搜索关键字,
  24.      if (eregi("<body([^>]+)>(.+)</body>",$data,$b)){
  25.       $body = strip_tags($b["2"]);
  26.      }
  27.      else{
  28.       $body = strip_tags($data);
  29.      }
  30.      //不搜索自身
  31.      if($file != "search.php"){
  32.       //就去干是否匹配
  33.       if (eregi("$keyword",$body)){
  34.        //从搜索页面里提取出<title>和</title>里的内容,来作为标题
  35.        if (eregi("<title>(.+)</title>",$data,$m)){
  36.         $title = $m["1"];
  37.        }
  38.        else{
  39.         $title = "没有标题";
  40.        }
  41.        //把搜索到的 标题和页面地址,存放到数组里
  42.        //$dir/$file  是搜索到的页面地址
  43.        $array[] = "$dir/$file $title";
  44.       
  45.       }
  46.      }
  47.     }
  48.    }
  49.   }
  50.   
  51.    
  52. }

  53. //定义数组
  54. $array = array();

  55. //执行函数
  56. listFiles(".","$keyword",$array);

  57. //打印搜索结果
  58. foreach ($array as $value){
  59.   //拆开
  60.   list($filedir,$title) = split("[ ]",$value,"2");
  61.   //输出
  62.   echo "<a href=$filedir target=_blank>$title</a>" . "<br/>\n";
  63. }
复制代码
http://www.97xxoo.org/article/1/2008/20081113330.shtml
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP