瑞鲁手机APP下载网_专注推荐好用的手机APP和游戏APP

Server全文搜索中文出错的问题 使用搜索助手

php站内全文搜索代码

查看人次:1摘自:瑞鲁下载网

dedecms 5.5 默认的模糊搜索只能根据网站文章的名称进行搜索,无法搜索到文章内部信息,对此经过研究得出以下修改方法

如果你是用dreamweaver或者frontpage设计的,那么除非你故意删掉,它们都在存在的。下面就让我们一步步来完成并在工程中改善这个搜索引擎。

一,设计搜索表单在网站的根目录下建个search.htm,内容如下<html><head><title>搜索表单</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>

<body bgcolor="#FFFFFF" text="#000000"><form name="form1" method="post" action="search.php"><table width="100%" cellspacing="0" cellpadding="0"><tr> <td width="36%"> <div align="center"><input type="text" name="keyword"></div></td><td width="64%"><input type="submit" name="Submit" value="搜索"></td></tr></table></form></body></html>

二,搜索程序再在根目录下建个search.php 的文件,用来处理search.htm表单传过来的数据.内容如下<?php//获取搜索关键字$keyword=trim($_POST[“keyword”]);//检查是否为空if($keyword==””){echo”您要搜索的关键字不能为空”;exit;//结束程序}?>

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

我们可以用递归的方法遍历所有的文件,可以用函数opendir,readdir,也可以用PHP Directory的类。我们现在用前者.<?php//遍历所有文件的函数function listFiles($dir){$handle=opendir($dir);while(false!==($file=readdir($handle))){if($file!="."&&$file!=".."){//如果是目录就继续搜索if(is_dir("$dir/$file")){listFiles("$dir/$file");}else{//在这里进行处理}}}}

?>

在红字的地方我们可以对搜索到的文件进行读取,处理.下面就是读取文件内容,并检查内容中是否含有关键字$keyword,如果含有就把文件地址赋给一个数组。<?php//$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"."<br>\n";}?>

现在把这个结果和开头的一段程序结合起来,输入一个关键字,然后就会发现你的网站中的相关结果都被搜索出来了。我们现在在把它完善一下。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";}原理就是,如果在文件内容中找到<title>xxx</title>,那么就把xxx取出来作为标题,如果找不到那么就把标题命名未”没有标题”.

12下一页 本文导航 第1页: 首页 第2页: 只搜索网页的内容的主题部分

相关文摘:PHP 学院 搜索代码 PHP源码
标题名称:《Server全文搜索中文出错的问题 使用搜索助手》
本文网址:https://www.sdruilu.cn/news/tpart-49926.html