PHP strpos 函式基本語法
int strpos( string $haystack , string $needle , int $offset )
strpos 函式的第一個參數 $haystack 代表的是原始字串,也就是即將被檢視的字串,必填項目,第二個參數 $needle 則是關鍵字符,strpos 函式會根據 $needle 去查詢 $haystack 是否含有相符合的關建字串,如果有則反回所在的數字位置(開始字符從 0 起始計算),如果沒有相符合的字符,則反回 false,或是與 false 等值的非 Boolean 值。第三個參數 $offset 是選填項目,用來指定要從哪個位置開始算,也稱為偏移量,返回的結果位置是相對 $haystack 的起始位置而言,請參考範例二。
PHP strpos 函式範例一
<?php
$NewString='Welcome to wibibi.Have a good day.';
$FindKey='w';
$TryStrpos=strpos('Welcome to wibibi.Have a good day.','w');
if($TryStrpos === false){
echo 'no find';
}else{
echo '關鍵字符 w 在原始字串的第'.$TryStrpos.'位置';
}
?>
以上範例輸出結果$NewString='Welcome to wibibi.Have a good day.';
$FindKey='w';
$TryStrpos=strpos('Welcome to wibibi.Have a good day.','w');
if($TryStrpos === false){
echo 'no find';
}else{
echo '關鍵字符 w 在原始字串的第'.$TryStrpos.'位置';
}
?>
關鍵字符 w 存在於原始字串中,且其在第11位置
在 if ...else 條件判斷中,我們用了 ($TryStrpos === false) 這樣的寫法,主要目的是避免出現非 Boolean 值而產生的錯誤判斷。由於 strpos 函式會自動區分大小寫,所以輸出結果可以發現小寫 w 字母在第 11 個位置,而不是第 0 個位置。PHP strpos 函式範例二、使用偏移量
<?php
echo strpos('Welcome to Wibibi.Have a good day.','W').'<br>';
echo strpos('Welcome to Wibibi.Have a good day.','W',2);
?>
以上範例輸出結果echo strpos('Welcome to Wibibi.Have a good day.','W').'<br>';
echo strpos('Welcome to Wibibi.Have a good day.','W',2);
?>
0
11
第一次輸出的結果並未使用偏移量參數,strpos 函式判斷出第一個大寫英文字母 W 位置在 0 處,第二次輸出時,strpos 函式加上了偏移量參數,所以自動跳過了第一個英文字母 W,找到第二個 W,相對於原始字串的起始位置,第二個 W 在第 11 位置。11
相關主題研究