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


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...