看了平臺上的@finecho每天堅持學習函式,感覺自己幹了那麼些年php,好多函式不查字典都不是太清楚,決定向他學習,每天學習幾個php。
strpos
(PHP4, PHP5, PHP7)
strpos — 查詢字串首次出現的位置
說明
strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int
返回 needle
在 haystack
中首次出現的數字位置。
引數
haystack :在該字串中查詢
needle :如果needle
不是一個字串,那麼它將被轉換為整形並被視為字元的順序值
offset :如果提供了此引數,搜尋會從字串該字元數的起始位置開始統計。如果是負數,搜尋會從字串結尾指定字元數開始。
返回值
返回needle
存在於haystack
字串起始的位置(獨立於offset
)。同時注意字串位置是從0開始,而不是從1開始的。
如果沒找到needle
,將返回 FALSE。
Warning:此函式可能返回布林值 FALSE 但也可能返回等同於 FALSE 的非布林值。應使用
===
運算子來測試此函式的返回值。
更新日誌
版本 | 說明 |
---|---|
7.1.0 | 開始支援負數的offset |
範例
Example #1 使用 ===
<?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
// 注意這裡使用的是 === 。簡單的 == 不能像我們期待的那樣工作,
// 因為 'a' 是第 0 位置上的(第一個)字元。
if ($pos === false) {
echo "The string '$findme' was not found in the string '$mystring'";
} else {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position '$pos'";
}
?>
Example #2 使用 !==
<?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
// 使用 !== 操作符。使用 != 不能像我們期待的那樣工作,
// 因為 'a' 的位置是 0。語句 ( 0 != false ) 的結果是 false
if ($post !== false) {
echo "The string '$findme' was founf in the string '$mystring'";
echo " and exists at position '$pos'";
} else {
echo "The string '$findme' was not found in the string '$mystring'";
}
?>
Example #3 使用位置偏移量offset
<?php
// 忽視位置偏移量之前的字元進行查詢
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0
?>
註釋
Note:此函式可安全用於二進位制物件
參見
- stripos() - 查詢字串首次出現是位置(不區分大小寫)
- strrpos() - 計算指定字串在目標字串中最後一次出現的位置
- strripos() - 計算指定字串在目標字串中最後一次出現的位置(不區分大小寫)
- strstr() - 查詢字串的首次出現
- strpbrk() - 在字串中查詢一組字元的任何一個字元
- substr() - 返回字串的子串
- preg_match() - 執行匹配正規表示式
本作品採用《CC 協議》,轉載必須註明作者和本文連結