儿童文学

做个自己站内搜索引擎-php进阶-PHP教程-幽默笑话

  • 本站
  • 2019-07-08
  • 145已阅读
简介 我们可以用递归的方法遍历所有的文件,可以用函数opendir,readdir,也可以用PHPDirectory的类。 我们现在用前者.CODE:php//遍历所有文件的函数functio

做个自己站内搜索引擎-php进阶-PHP教程-幽默笑话

我们可以用递归的方法遍历所有的文件,可以用函数opendir,readdir,也可以用PHPDirectory的类。

我们现在用前者.CODE:php//遍历所有文件的函数functionlistFiles($dir){$handle=opendir($dir);while(false!==($file=readdir($handle))){if($file!="."$file!=".."){//如果是目录就继续搜索if(is_dir("$dir/$file")){listFiles("$dir/$file");}else{//在这里进行处理}}}}(非常全面的一个php技术网站,有相当丰富的文章和源代码.)在红字的地方我们可以对搜索到的文件进行读取,处理.下面就是读取文件内容,并检查内容中是否含有关键字$keyword,如果含有就把文件地址赋给一个数组。 CODE:php//$dir是搜索的目录,$keyword是搜索的关键字,$array是存放的数组functionlistFiles($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($file!=””){//是否匹配if(eregi("$keyword",$data)){$array[]="$dir/$file";}}}}}}//定义数组$array$array=array();//执行函数listFiles(".","php",$array);//打印搜索结果foreach($arrayas$value){echo"$value"."br";}(非常全面的一个php技术网站,有相当丰富的文章和源代码.)现在把这个结果和开头的一段程序结合起来,输入一个关键字,然后就会发现你的网站中的相关结果都被搜索出来了。 我们现在在把它完善一下。 1,列出内容的标题把if(eregi($keyword,$data)){$array[]=$dir/$file}改成if(eregi($keyword,$data)){if(eregi(title(.+)/title,$data,$m)){$title=$m[1];}else{$title=没有标题}$array[]=$dir/$file$title}原理就是,如果在文件内容中找到titlexxx/title,那么就把xxx取出来作为标题,如果找不到那么就把标题命名未”没有标题”.。

Top