php迴圈讀取txt裡面關鍵詞並按頁數

蓝易云發表於2024-11-02

在PHP中,可以透過檔案處理函式讀取.txt檔案,並按設定規則(如關鍵詞、頁數)處理文字內容。以下是詳細的操作步驟和程式碼示例。

基本步驟

1. 開啟檔案並讀取內容

首先,我們透過fopen()函式開啟檔案,然後用fgets()逐行讀取檔案內容。

$filename = 'yourfile.txt'; // 檔名
$file = fopen($filename, 'r'); // 開啟檔案

if ($file) { // 檢查檔案是否成功開啟
    while (($line = fgets($file)) !== false) {
        // 處理每一行的內容
    }
    fclose($file); // 關閉檔案
} else {
    // 檔案開啟失敗的處理邏輯
}

程式碼解釋

  • $filename:設定待處理的檔案路徑。
  • fopen($filename, 'r'):以只讀模式開啟檔案,返回檔案控制代碼。
  • fgets($file):每次讀取一行,存入變數$line,迴圈進行讀取直至檔案結束。
  • fclose($file):釋放檔案資源。

2. 按關鍵詞處理內容

我們可以定義一個關鍵詞陣列,並透過strpos()函式檢查每行是否包含指定關鍵詞。如果包含,執行對應操作。

$keywords = ['keyword1', 'keyword2', 'keyword3']; // 關鍵詞陣列

foreach ($keywords as $keyword) {
    if (strpos($line, $keyword) !== false) {
        // 找到關鍵詞,執行處理操作
    }
}

程式碼解釋

  • $keywords:定義需要查詢的關鍵詞集合。
  • strpos($line, $keyword):在當前行中查詢關鍵詞,若匹配成功返回關鍵詞位置,失敗則返回false

3. 按頁數進行分段儲存

為了方便將檔案按頁數分割儲存,可定義每頁的行數(例如50行),並使用計數器控制每頁的內容儲存。

$pageSize = 50;  // 每頁行數
$pageCount = 1;  // 頁數計數器
$lineCount = 0;  // 當前頁行計數器
$pageContent = '';  // 當前頁內容

while (($line = fgets($file)) !== false) {
    $lineCount++;
    $pageContent .= $line;

    if ($lineCount == $pageSize) { // 達到一頁的行數限制
        // 儲存當前頁內容到新檔案
        file_put_contents("page{$pageCount}.txt", $pageContent);
        
        // 重置計數器及內容
        $lineCount = 0;
        $pageContent = '';
        $pageCount++;
    }
}

// 處理未滿50行的最後一頁內容
if ($lineCount > 0) {
    file_put_contents("page{$pageCount}.txt", $pageContent);
}

程式碼解釋

  • $pageSize:設定每頁的最大行數。
  • $pageCount:當前頁碼計數器,用於建立檔名。
  • $lineCount:每頁的行計數器,記錄當前頁讀取的行數。
  • file_put_contents("page{$pageCount}.txt", $pageContent):按頁儲存檔案內容,每達到pageSize設定的行數後,將當前頁的內容寫入檔案。

分頁流程圖

以下為分頁處理的流程圖,展示瞭如何按行數儲存分頁檔案。

flowchart TD
A[讀取txt檔案] --> B{是否讀取到行}
B -- 否 --> F[關閉檔案]
B -- 是 --> C[判斷關鍵詞]
C --> D[追加內容至$pageContent]
D --> E{當前行數是否達到$pageSize}
E -- 是 --> G[儲存當前頁內容]
E -- 否 --> B
G --> D

TIMESTAMP與DATETIME區別總結表

欄位型別儲存範圍是否受時區影響適用場景
TIMESTAMP1970年1月1日-2038年1月19日需考慮時區應用的場景
DATETIME1000年1月1日-9999年12月31日適合需要長時間跨度的應用

小結

  • 使用PHP檔案處理函式可以實現分段讀取按頁儲存的功能,有效提高了大檔案的讀取效率。
  • 關鍵詞查詢結合分段儲存使內容檢索和處理更加靈活,有助於根據不同需求靈活定製

相關文章