欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    php站内搜索代码.docx

    • 资源ID:3163742       资源大小:38.47KB        全文页数:5页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    php站内搜索代码.docx

    php站内搜索代码 读取内容-> 搜索关键字,如果匹配就放入一个数组->读数组。 在实现这些步骤之前,我假定你的网页都是标准的,就是有标题(<title></title>),也有(<bod *></body>),如果你是用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取出来作为标题,如果找不到那么就把标题命名未”没有标题”. 2,只搜索网页的内容的主题部分。做网页时一定会有很多html代码在里面,而这些都不是我们想要搜索的,所以要去除它们。我现在用正则表达式和strip_tags的配合,并不能把所有的都去掉。把$data=fread(fopen("$dir/$file","r"),filesize("$dir/$file");/不搜索自身if($file!=”search.php”)/是否匹配if(eregi("$keyword",$data)改为 $data=fread(fopen("$dir/$file","r"),filesize("$dir/$file");if(eregi("<body(>+)>(.+)</body>",$data,$b)$body=strip_tags($b"2");else$body=strip_tags($data);if($file!="search.php")if(eregi("$keyword",$body) 3,标题上加链接foreach($array as $value)echo "$value"."<br>n"改成foreach($array as $value)/拆开list($filedir,$title)=split(“ ”,$value,”2”);/输出echo "<a href=$filedir>$value</a>"."<br>n"4防止超时如果文件比较多,那么防止PHP执行时间超时是必要的。可以在文件头加上set_time_limit(“600”);以秒为单位,所以上面是设10分钟为限。 所以完整的程序就是<?phpset_time_limit("600");/获取搜索关键字$keyword=trim($_POST"keyword");/检查是否为空if($keyword="")echo"您要搜索的关键字不能为空"exit;/结束程序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(eregi("<body(>+)>(.+)</body>",$data,$b)$body=strip_tags($b"2");else$body=strip_tags($data);if($file!="search.php")if(eregi("$keyword",$body)if(eregi("<title>(.+)</title>",$data,$m)$title=$m"1"else$title="没有标题"$array="$dir/$file $title"$array=array;listFiles(".","$keyword",$array);foreach($array as $value)/拆开list($filedir,$title)=split(" ",$value,"2");/输出echo "<a href=$filedir target=_blank>$title </a>"."<br>n"?> 到此为止,你已经做好了自己的一个搜索引擎,你也可以通过修改内容处理部分来改进它,可以实现搜索标题,或者搜索内容的功能。也可以考虑分页。这些都留给你自己吧。 这里说明一下用preg_match代替eregi,会快很多。这里只是为了通俗易懂,所以使用了常用的eregi.

    注意事项

    本文(php站内搜索代码.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开