在PHP 開發中,我們經常需要在字符串中查找某個關鍵詞,並判斷它在整段文本中所處的大致位置。比如,我們可能想知道一個關鍵詞是在文本的前半部分,還是後半部分。這個需求在內容分析、搜索引擎優化、甚至廣告投放中都非常常見。
本文將介紹如何通過stripos()和strlen()函數,來計算某個關鍵詞在字符串中的相對位置百分比,並給出簡單的實際應用示例。
stripos()是PHP 中用於查找字符串首次出現的位置的函數。它的用法是:
int stripos ( string $haystack , mixed $needle [, int $offset = 0 ] )
它返回$needle在$haystack中首次出現的位置(不區分大小寫),如果找不到,則返回false 。
strlen()則是用來獲取字符串長度的函數,語法非常簡單:
int strlen ( string $string )
它返回字符串的總長度(以字符數計)。
我們可以使用以下公式來計算關鍵詞在字符串中出現的位置所佔的百分比:
相對位置百分比 = (關鍵詞位置 / 總字符串長度) * 100
為了避免除以0 的錯誤,還需要做一些基本的錯誤判斷。下面是一個完整的示例:
<?php
$text = "歡迎訪問我們的網站,更多資訊請瀏覽 https://m66.net/page/about。我們專注於高質量內容。";
$keyword = "資訊";
$position = stripos($text, $keyword);
$length = strlen($text);
if ($position !== false && $length > 0) {
$percentage = ($position / $length) * 100;
echo "關鍵詞 '{$keyword}' 在文本中相對位置約為:" . round($percentage, 2) . "%";
} else {
echo "未找到關鍵詞 '{$keyword}' 或字符串為空。";
}
?>
運行結果可能如下:
關鍵詞 '資訊' 在文本中相對位置約為:34.88%
內容摘要定位<br> 如果你正在為文章生成摘要,可以根據關鍵詞相對位置判斷是否包含它,以增強摘要的相關性
關鍵詞熱度分析<br> 如果多個關鍵詞集中出現在文本前段,可以認為其更“重要”,從而影響排序策略
廣告內容插入<br> 可根據關鍵詞位置在“前中後”的分佈,決定在哪一段落插入廣告信息以提高轉化率
stripos()與strlen()組合使用,是一個簡單但強大的方法,幫助你快速獲取關鍵詞的相對位置。這個技巧適用於日誌分析、SEO 優化、內容管理系統等多個場景。掌握它,將會讓你在處理文本數據時更加得心應手。