溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php查找文件內(nèi)容關(guān)鍵字實例代碼

發(fā)布時間:2020-07-18 20:30:52 來源:網(wǎng)絡(luò) 閱讀:1680 作者:51_dezhong 欄目:web開發(fā)


    1. <?php

    2. /**

    3. * 文件: search.php

    4. * 功能: 搜索指定目錄下的HTML文件

    5. */

    6. /* 基本函數(shù) */


    7. //獲取目錄下文件函數(shù)

    8. function getFile($dir)

    9. {

    10.         $dp = opendir($dir);

    11.         $fileArr = array();

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

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

    14.                         if (is_dir($curFile)) {

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

    16.                         } else {

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

    18.                         }

    19.                 }

    20.          }

    21.         return $fileArr;

    22. }


    23. //獲取文件內(nèi)容

    24. function getFileContent($file)

    25. {

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

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

    28.         }

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

    30.                 $fileContent .= $text;

    31.         }

    32.         return $fileContent;

    33. }


    34. //搜索指定文件

    35. function searchText($file, $keyword)

    36. {

    37.         $text = getFileContent($file);

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

    39.                 return true;

    40.         }

    41.         return false;

    42. }


    43. //搜索出文章的標(biāo)題

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

    45. {

    46.         $fileContent = getFileContent($file);

    47.         $sResult = preg_match("/<title>.*</title>/i", $fileContent, $matchResult);

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

    49.         if (empty($title)) {

    50.                 return $default;

    51.         } else {

    52.                 return $title;

    53.         }

    54. }


    55. //獲取文件描述信息

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

    57. {

    58.         $metas = get_meta_tags($file);

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

    60.                 return $metas[description];

    61.         }

    62.          $fileContent = getFileContent($file);

    63.         preg_match("/(<body.*</body>)/is", $fileContent, $matchResult);

    64.         $pattern = array("/(<[^x80-xff] >)/i","/(<input.*>) /i", "/(<a.*>) /i", "/(<img.*>) /i", "/([<script.*>]) .*([</script>]) /i","/&amp;/i","/&quot;/i","/&#039;/i", "/s/");

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

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


    67.         return $description;

    68. }


    69. //加亮搜索結(jié)果中的關(guān)鍵字

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

    71. {

    72.         $newword = "<font color=$color>$keyword</font>";

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

    74.         return $text;

    75. }


    76. //獲取文件大小(KB)

    77. function getFileSize($file)

    78. {

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

    80.         return $filesize;

    81. }


    82. //獲取文件最后修改的時間

    83. function getFileTime($file)

    84. {

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

    86.         return $filetime;

    87. }


    88. //搜索目錄下所有文件

    89. function searchFile($dir, $keyword)

    90. {

    91.         $sFile = getFile($dir);

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

    93.                 return false;

    94.         }

    95.         $sResult = array();

    96.         foreach ($sFile as $file) {

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

    98.                         $sResult[] = $file;

    99.                 }

    100.         }

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

    102.                 return false;

    103.         } else {

    104.                 return $sResult;

    105.         }

    106. }


    107. /* 測試代碼 */


    108. //指定要搜索的目錄

    109. $dir = "./php_Linux";

    110. //要搜索的關(guān)鍵字

    111. $keyword = "sendmail";


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

    113. $searchSum = count($fileArr);


    114. echo "搜索關(guān)鍵字: <b>$keyword</b> &nbsp; 搜索目錄: <b>$dir</b> &nbsp; 搜索結(jié)果: <b>$searchSum</b><br><hr size=1><br>";


    115. if ($searchSum <= 0) {

    116. echo "沒有搜索到任何結(jié)果";

    117. } else {

    118. for


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI