當前位置: 首頁> 最新文章列表> 如何通過PHP 的stripos 函數實現文章內容中的關鍵詞高亮顯示?

如何通過PHP 的stripos 函數實現文章內容中的關鍵詞高亮顯示?

M66 2025-05-31

在開發網站內容管理系統或展示文章時,經常需要對文章中的關鍵詞進行高亮顯示,這樣可以幫助用戶更快速地找到他們關注的信息。通過PHP 的stripos函數,可以輕鬆實現這一需求。 stripos函數是一個不區分大小寫的字符串查找函數,用於在指定字符串中查找另一個字符串的位置。利用它,我們可以遍歷文章內容,找到關鍵詞的位置,並將其包裹上HTML 標籤,以實現高亮顯示。

步驟一:理解stripos 函數

stripos函數的基本語法如下:

 stripos(string $haystack, string $needle, int $offset = 0): int|false
  • $haystack :要搜索的目標字符串,即文章內容。

  • $needle :要查找的子字符串,即需要高亮顯示的關鍵詞。

  • $offset :從字符串的哪個位置開始查找,默認為0。

  • 返回值:如果找到了關鍵詞,則返回關鍵詞在目標字符串中的位置;如果沒找到,則返回false

由於stripos不區分大小寫,因此可以確保即使關鍵詞的大小寫與文章中的不同,也能成功找到。

步驟二:使用stripos 實現關鍵詞高亮

接下來,我們將通過PHP 編寫一個函數,該函數接受文章內容和關鍵詞作為參數,查找並高亮顯示所有匹配的關鍵詞。

 <?php
function highlightKeyword($content, $keyword) {
    // 檢查關鍵詞是否為空
    if (empty($keyword)) {
        return $content;
    }

    // 使用 stripos 查找關鍵詞,並高亮顯示
    $start = 0;
    while (($pos = stripos($content, $keyword, $start)) !== false) {
        // 在找到的關鍵詞位置插入 HTML 標籤進行高亮
        $content = substr_replace($content, "<span style='background-color: yellow;'>$keyword</span>", $pos, strlen($keyword));
        // 更新搜索位置
        $start = $pos + strlen($keyword);
    }

    return $content;
}

$article = "歡迎訪問我們的官方網站!在這裡,你可以找到各種關於 PHP 編程的教程和資源。";
$keyword = "PHP";
$highlightedArticle = highlightKeyword($article, $keyword);

echo $highlightedArticle;
?>

步驟三:代碼解析

  1. highlightKeyword函數:該函數接收兩個參數, $content$keyword 。在函數內部,我們通過stripos來查找文章內容中所有出現的關鍵詞,並通過substr_replace來替換它們,給每個匹配的關鍵詞加上一個黃色背景的HTML span標籤,實現高亮顯示。

  2. 循環查找關鍵詞:在stripos查找到一個關鍵詞後,我們使用substr_replace在該位置插入HTML 標籤,包裹關鍵詞。在下一次循環中,從當前位置的下一個位置繼續查找。

  3. 返回結果:經過循環處理後,函數返回處理過的內容,所有的關鍵詞都會被高亮顯示。

步驟四:代碼示例輸出

假設我們的文章內容是:

 歡迎訪問我們的官方網站!在這裡,你可以找到各種關於 PHP 編程的教程和資源。

如果我們傳入的關鍵詞是PHP ,輸出的結果將會是:

 歡迎訪問我們的官方網站!在這裡,你可以找到各種關於 <span style='background-color: yellow;'>PHP</span> 編程的教程和資源。

關鍵詞PHP會被黃色背景的span標籤包裹,瀏覽器渲染時,顯示效果為高亮顯示。

步驟五:自定義高亮樣式

你可以根據需要修改span標籤的樣式來實現不同的高亮效果。比如改變背景顏色、字體顏色或加粗文字等。例如:

 $content = substr_replace($content, "<span style='background-color: yellow; font-weight: bold;'>$keyword</span>", $pos, strlen($keyword));

通過這種方式,你可以使高亮效果更加醒目。

總結

通過PHP 的stripos函數,我們可以方便地在文章中找到並高亮顯示關鍵詞,提升用戶體驗。只需簡單的字符串處理和HTML 標籤嵌套,即可實現這一功能。你可以根據自己的需求進一步擴展和優化,比如處理多個關鍵詞、不同的高亮樣式等。