分享如何在PHP中站内搜索全文代码。

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

分享如何在PHP中站内搜索全文代码。

一,设计搜索表单

在网站的根目录下建个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中站内搜索全文代码全部内容,希望可以帮助到大家。

本文来自投稿,不代表酷牛教程立场,如若转载,请注明出处:https://www.xukn.com/116422.html

(0)
上一篇 2023-07-10 18:34
下一篇 2023-07-10 19:09

相关推荐