加入收藏 | 设为首页 | 会员中心 | 我要投稿 南京站长网 (https://www.025zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-11-16 18:36:43 所属栏目:PHP教程 来源:互联网
导读: 大家知道如何在PHP中站内搜索代码吗?不知道的话php搜索,那就看一看下文我给大家带来的的在PHP中站内搜索全文代码的方法,希望大家喜欢。

一,设计搜索表单
在网站的根目录下建个search.ht

大家知道如何在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中站内搜索全文代码全部内容,希望可以帮助到大家。

(编辑:南京站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!