php查找文件内容关键字实例代码
admin
2023-06-28 18:43:25
0


    1. /**

    2. * 文件: search.php

    3. * 功能: 搜索指定目录下的HTML文件

    4. */

    5. /* 基本函数 */


    6. //获取目录下文件函数

    7. function getFile($dir)

    8. {

    9.         $dp = opendir($dir);

    10.         $fileArr = array();

    11.         while (!false == $curFile = readdir($dp)) {

    12.                 if ($curFile!="." && $curFile!=".." && $curFile!="") {

    13.                         if (is_dir($curFile)) {

    14.                                 $fileArr = getFile($dir."/".$curFile);

    15.                         } else {

    16.                                 $fileArr[] = $dir."/".$curFile;

    17.                         }

    18.                 }

    19.          }

    20.         return $fileArr;

    21. }


    22. //获取文件内容

    23. function getFileContent($file)

    24. {

    25.         if (!$fp = fopen($file, "r")) {

    26.                 die("Cannot open file $file");

    27.         }

    28.         while ($text = fread($fp, 4096)) {

    29.                 $fileContent .= $text;

    30.         }

    31.         return $fileContent;

    32. }


    33. //搜索指定文件

    34. function searchText($file, $keyword)

    35. {

    36.         $text = getFileContent($file);

    37.         if (preg_match("/$keyword/i", $text)) {

    38.                 return true;

    39.         }

    40.         return false;

    41. }


    42. //搜索出文章的标题

    43. function getFileTitle($file, $default="None subject")

    44. {

    45.         $fileContent = getFileContent($file);

    46.         $sResult = preg_match("/.*/i", $fileContent, $matchResult);

    47.         $title = preg_replace(array("/()/i","/()/i"), "",        $matchResult[0]);

    48.         if (empty($title)) {

    49.                 return $default;

    50.         } else {

    51.                 return $title;

    52.         }

    53. }


    54. //获取文件描述信息

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

    56. {

    57.         $metas = get_meta_tags($file);

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

    59.                 return $metas[description];

    60.         }

    61.          $fileContent = getFileContent($file);

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

    63.         $pattern = array("/(<[^x80-xff] >)/i","/() /i", "/() /i", "/() /i", "/([]) .*([]) /i","/&/i","/"/i","/'/i", "/s/");

    64.         $description = preg_replace($pattern, "", $matchResult[0]);

    65.         $description = mb_substr($description, 0, $length)." ...";


    66.         return $description;

    67. }


    68. //加亮搜索结果中的关键字

    69. function highLightKeyword($text, $keyword, $color="#C60A00")

    70. {

    71.         $newword = "$keyword";

    72.         $text = str_replace($keyword, $newword, $text);

    73.         return $text;

    74. }


    75. //获取文件大小(KB)

    76. function getFileSize($file)

    77. {

    78.         $filesize = intval(filesize($file)/1024)."K";

    79.         return $filesize;

    80. }


    81. //获取文件最后修改的时间

    82. function getFileTime($file)

    83. {

    84.         $filetime = date("Y-m-d", filemtime($file));

    85.         return $filetime;

    86. }


    87. //搜索目录下所有文件

    88. function searchFile($dir, $keyword)

    89. {

    90.         $sFile = getFile($dir);

    91.         if (count($sFile) <= 0) {

    92.                 return false;

    93.         }

    94.         $sResult = array();

    95.         foreach ($sFile as $file) {

    96.                 if (searchText($file, $keyword)) {

    97.                         $sResult[] = $file;

    98.                 }

    99.         }

    100.         if (count($sResult) <= 0) {

    101.                 return false;

    102.         } else {

    103.                 return $sResult;

    104.         }

    105. }


    106. /* 测试代码 */


    107. //指定要搜索的目录

    108. $dir = "./php_Linux";

    109. //要搜索的关键字

    110. $keyword = "sendmail";


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

    112. $searchSum = count($fileArr);


    113. echo "搜索关键字: $keyword   搜索目录: $dir   搜索结果: $searchSum



      ";


    114. if ($searchSum <= 0) {

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

    116. } else {

    117. for


相关内容

热门资讯

免去南开大学陈某院长、中山大学... 刚刚,南开大学和中山大学发布情况通报。南开大学:免去陈某院长职务南开大学通报中指出,论文第一作者郑某...
绿色算力全栈AI平台在呼和浩特...   新华社呼和浩特5月30日电(记者侯维轶)30日,绿色算力全栈AI平台——内蒙古词元交易平台在内蒙...
北京太空智算研究院在北京亦庄成... 红星资本局5月30日消息,近日,北京太空智算研究院在北京经济技术开发区(简称“北京经开区”,又称“北...
第二届西部医学科技创新学术大会... 封面新闻记者 邱添 2026年5月30日,在第十个全国科技工作者日来临之际,一场汇聚医学前沿智慧与创...
地博光电取得存储自动化料库专利... 国家知识产权局信息显示,昆山地博光电材料有限公司取得一项名为“一种存储自动化料库”的专利,授权公告号...
香港政务司司长谈黎家盈:香港由... 据凤凰卫视报道,首位来自香港的载荷专家黎家盈早前随神舟二十三号载人飞船升空。香港政务司司长陈国基表示...
亚美尼亚大选在即,俄方突然召回... 【文/观察者网 阮佳琪】当地时间周五(5月29日),在哈萨克斯坦首都阿斯塔纳,亚美尼亚由副总理格里戈...
财政部在香港发行60亿元人民币... 新华社北京5月30日电 《中国证券报》30日刊发文章《财政部在香港发行60亿元人民币绿色主权债券》。...
原创 追... 2026年5月30日是全国科技工作者日。在吉林省长春市王大珩故居前,这位中国光学事业奠基人的新雕像揭...
京东618独家首发欧姆龙血糖尿... 当前,国民居家慢病管理意识持续增强,血糖、尿酸等健康指标的常态化监测,早已成为家庭健康管理的刚需。5...