php怎样搜索_如何在PHP中站内搜索全文代码?搜索全文代码方法

大家知道如何在PHP中站内搜索代码吗?不知道的话,那就看一看下文我给大家带来的的在PHP中站内搜索全文代码的方法,希望大家喜欢。10877832_4d29cac4ac2ce671dbfb97cc6e7d0a52_thumb.jpg

一,设计搜索表单

在网站的根目录下建个search.htm,内容如下

二,搜索程序

再在根目录下建个search.php 的文件,用来处理search.htm表单传过来的数据.内容如下

//获取搜索关键字

$keyword=trim($_POST[“keyword”]);

//检查是否为空

if($keyword==””){

echo”您要搜索的关键字不能为空”;

exit;//结束程序

}

?>

这样如果访问者输入的关键字为空时,可以做出提示。下面是遍历所有文件。

我们可以用递归的方法遍历所有的文件,可以用函数opendir,readdir,也可以用PHP Directory的类。我们现在用前者.

//遍历所有文件的函数

function listFiles($dir){

$handle=opendir($dir);

while(false!==($file=readdir($handle))){

if($file!="."&&$file!=".."){

//如果是目录就继续搜索

if(is_dir("$dir/$file")){

listFiles("$dir/$file");

}

else{

//在这里进行处理

}

}

}

}

?>

在红字的地方我们可以对搜索到的文件进行读取,处理.下面就是读取文件内容,并检查内容中是否含有关键字$keyword,如果含有就把文件地址赋给一个数组。

//$dir是搜索的目录,$keyword是搜索的关键字 ,$array是存放的数组

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($file!=”search.php”){

//是否匹配

if(eregi("$keyword",$data)){

$array[]="$dir/$file";

}

}

}

}

}

}

//定义数组$array

$array=array();

//执行函数

listFiles(".","php",$array);

//打印搜索结果

foreach($array as $value){

echo "$value"."

\n";

}

?>

现在把这个结果和开头的一段程序结合起来,输入一个关键字,然后就会发现你的网站中的相关结果都被搜索出来了。我们现在在把它完善一下。

1,列出内容的标题

if(eregi("$keyword",$data)){

$array[]="$dir/$file";

}

改成

if(eregi("$keyword",$data)){

if(eregi("",$data,$m)){

$title=$m["1"];

}

else{

$title="没有标题";

}

$array[]="$dir/$file $title";

}

原理就是,如果在文件内容中找到,那么就把xxx取出来作为标题,如果找不到那么就把标题命名未”没有标题”.

以上就是小编带来的如何在PHP中站内搜索全文代码全部内容,希望可以帮助到大家。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值