在PHP 中處理字符串時, stripos()是一個非常有用的函數。它可以用來查找字符串中某個子串首次出現的位置,而且是的。更棒的是, stripos()函數還支持從指定的位置開始查找,這對於處理較大的文本或需要跳過前段內容的場景非常實用。
本文將帶你了解如何使用stripos()從指定位置開始查找子字符串,並通過實例進行演示。
stripos()的基本語法如下:
stripos(string $haystack, string $needle, int $offset = 0): int|false
$haystack :要搜索的主字符串。
$needle :要查找的子字符串。
$offset (可選):指定從哪個位置開始搜索。
返回值:如果找到子字符串,返回其首次出現的位置(從0 開始計數);如果未找到,返回false 。
需要注意的是, stripos()不區分大小寫,而它的兄弟函數strpos()是區分大小寫的。
來看一個簡單的例子:
<?php
$text = "歡迎訪問M66.net,這是一個提供技術文章和教程的網站。M66.net致力於幫助開發者成長。";
$keyword = "m66.net";
// 從開頭開始查找
$firstPos = stripos($text, $keyword);
echo "第一次出現的位置是:$firstPos\n";
// 從第一次出現之後的位置開始查找第二次
$secondPos = stripos($text, $keyword, $firstPos + 1);
echo "第二次出現的位置是:$secondPos\n";
?>
輸出結果:
第一次出現的位置是:4
第二次出現的位置是:33
在這個例子中, stripos()首先找到m66.net第一次出現的位置,然後我們通過offset參數,從下一個字符開始繼續查找,找到了第二次出現的位置。
比如你在處理一個網頁抓取內容,想要從某個關鍵詞後再繼續查找其他內容:
$content = "Header Info... Visit: https://m66.net/page.html ... Footer Info";
$pos = stripos($content, "https://m66.net", 10); // 跳過前10個字符查找
可以使用循環結合stripos()和offset來查找所有出現的位置:
$haystack = "M66.net 是我們的網址,訪問 m66.net 可以獲得更多信息。m66.net!";
$needle = "m66.net";
$offset = 0;
while (($pos = stripos($haystack, $needle, $offset)) !== false) {
echo "找到 '$needle' 位置:$pos\n";
$offset = $pos + 1;
}
stripos()是一個非常強大的字符串查找工具,特別是在你需要忽略大小寫並從指定位置開始查找的場合中。無論是處理網站內容、日誌分析,還是進行文本過濾,它都能提供強有力的支持。