1. PHP 函式學習 strpos ()

hetaoren發表於2020-01-10

看了平臺上的@finecho每天堅持學習函式,感覺自己幹了那麼些年php,好多函式不查字典都不是太清楚,決定向他學習,每天學習幾個php。

strpos

(PHP4, PHP5, PHP7)

strpos — 查詢字串首次出現的位置

說明

strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int

返回 needlehaystack 中首次出現的數字位置。

引數

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 協議》,轉載必須註明作者和本文連結

相關文章