下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >3DMAX >简单使用站内HTML文件搜索程序

简单使用站内HTML文件搜索程序

皇子发布于 2015-11-16 10:07查看:1226回复:13
今天小编带领大家一起学习有关编程语言的内容,让我们熟练的驾驭编程语言的天空,让我们一起感受知识的力量

自己写来简单的搜索自己电脑上的技术资料的。大概的思路就是寻找指定目录下的文本,然后如果有与关键字相匹配的数据就把文件名返回,最后把所有搜索结果显示出来。显示结果类似于baidu/google,呵呵,这个是纯粹为了好玩。
程序代码:


"well我从事编程语言统计很多年了,有大量的数据来源包括代码存储库、Q&A讨论、招聘广告、社交媒体情况、教程页面访问、学习视频视图、开发者调查等等。数据发表在不同的时间,都可以被认为是精确的,
也可以被认为是有缺陷的,但是它们可以用于发现行业趋势。最后,不要期望一夜之间就变成一个编码忍者。有些人有一种天然的能力,但也是花了很多很多时间来磨练他们的技能,不断的学习新的技术和技巧。"
在过去三年中 XML 经历了许多反复,所以目前存在不同版本的 Microsoft XML 分析器也不奇怪。Internet Explorer 4.0 包含早期版本的 XML 分析器,它比 XSL、XML 数据或者大多数其他的 XML 技术(并且有完全不同的 DOM 模型)要早。该早期版本的分析器包含在 MSXML.dll 库中。从 MSDN XML 开发人员中心(英文)可将分析器升级到较新的一种。
  我们极力建议您升级到新的分析器,因为它要强大得多。Internet Explorer 5.0 包括 MSXML 2.0 分析器,它包含 XSL 和 XML 架构的基本版本。MSXML2 是 SQL Server 2000 附带的分析器版本。MSXML2 包含了许多性能增强的功能,并且在总体上提高了性能和可伸缩性。MSXML3 是当前作为“技术预览”附带的版本。MSXML3 包括 XSLT 和 XPath 支持以及 SAX 接口。

 

以下为引用的内容:
/**
 * 文件: search.php
 * 功能: 搜索指定目录下的HTML文件
 * 创建: 2005-9-23
 * 作者: heiyeluren
 */

/* 基本函数 */
//获取目录下文件函数
function getFile($dir)
{
 $dp = opendir($dir);
 $fileArr = array();
 while (!false == $curFile = readdir($dp)) {
  if ($curFile!="." && $curFile!=".." && $curFile!="") {
   if (is_dir($curFile)) {
    $fileArr = getFile($dir."/".$curFile);
   } else {
    $fileArr[] = $dir."/".$curFile;
   }
  }
 }
 return $fileArr;
}
//获取文件内容
function getFileContent($file)
{
 if (!$fp = fopen($file, "r")) {
  die("Cannot open file $file");
 }
 while ($text = fread($fp, 4096)) {
  $fileContent .= $text;
 }
 return $fileContent;
}
//搜索指定文件
function searchText($file, $keyword)
{
 $text = getFileContent($file);
 if (preg_match("/$keyword/i", $text)) {
  return true;
 }
 return false;
}
//搜索出文章的标题
function getFileTitle($file, $default="None subject")
{
 $fileContent = getFileContent($file);
 $sResult = preg_match("/.*<\\\\\\\\/title>/i", $fileContent, $matchResult);

 

 $title = preg_replace(array("/()/i","/(<\\\\\\\\/title>)/i"), "", $matchResult[0]);

 

 if (empty($title)) {

 

  return $default;

 

 } else {

 

  return $title;

 

 }

 

}

 

//获取文件描述信息

 

function getFileDescribe($file,$length=200, $default="None describe")

 

{

 

 $metas = get_meta_tags($file);

 

 if ($meta['description'] != "") {

 

  return $metas['description'];

 

 }

 

 $fileContent = getFileContent($file);

 

 preg_match("/()/is", $fileContent, $matchResult);

 

 $pattern = array("/(<[^\\\\\\\\x80-\\\\\\\\xff]+>)/i","/()+/i", "/(";

 

//要搜索的关键字

 

$keyword = "sendmail";

 

$fileArr = searchFile($dir, $keyword);

 

$searchSum = count($fileArr);

 

echo "搜索关键字:

$keyword

  搜索目录:

$dir

  搜索结果:

$searchSum

 


 

";

 

if ($searchSum <= 0) {

 

 echo "没有搜索到任何结果";

 

} else {

 

 foreach ($fileArr as $file) {

 

  echo "

 

- ".getFileSize($file)." ". getFileTime($file) .

 

    "

 

\\\\\\\\n

".highLightKeyword(getFileDescribe($file), $keyword) .
    "

 

 

";

 

 }

 

}

 

?>

 


完全可以用在自己已经生成静态内容的的搜索,但是程序效率不高。如果能够适当的加上 索引/缓存 等机制的话,我想程序会有趣很多。

文章学习完是不是意犹未尽,还有很多地方不懂更多视频教程尽在官方网站,让我们一起沉浸在知识的海洋。

 

收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

共有13条评论

  • 课课家运营团队
  • K哥馆
  • 大萌
  • 953424443
  • Mr ken
  • YUI
  • cappuccino
  • mr jack
  • IT宅男
  • Mright
  • 人生如梦183
  • studing
  • 选择版块:

  • 标题:

  • 内容

  • 验证码:

  • 标题:

  • 内容

  • 选择版块:

移动帖子x

移动到: