手冊查內建函式strpos,得到的格式是:mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ),知道其中各個部分的意義嗎?如果不知道,那你就有必要看這篇文章對手冊使用的介紹!
為了讓大家更好的理解,老規矩,舉例子!
有這麼乙個字串
$info = 'dengpeng and arvintang at home.';
現在讓咱們使用
strpos 函式,
查詢看看
dengpeng
是否在家
.
$info = 'dengpeng and arvintang at home.';
$status = strpos($info, 'dengpeng');
if ($status) else
看完上述**
,大家說說
,輸出結果是什麼啊
?是不是
dengpeng
在家啊,如果你的答案是肯定了
,那麼我告訴你
,你已經完美入坑了
.正確答案是
: dengpeng
不在家什麼鬼
?不是
dengpeng and arvintang at home.
嗎? strpos
查詢到後返回數值
,找不到返回
false嗎?
這裡問題就出在
,它找到
dengpeng 後,
返回了它的起始位置
,起始位置是從
0開始的,不是
1哦.恰巧
dengpeng
這個字串又在第乙個位置
.是不是錯的很坑呢
?知道原因,我們就好調整了,只要這麼處理下即可:
$info = 'dengpeng and arvintang at home.';
$status = strpos($info, 'dengpeng');
if ($status !== false) else
這下輸出就解決了!
好了,現在大家理解了
strpos
函式了,帶著這個理解,我們再去仔細看一看官方手冊
,看看官方手冊對這個函式是怎麼說的
手冊格式:
mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
string,就是字串的意思!
int,就是陣列的意思!
這個mixed
是什麼意思呢?
mixed英文翻譯為混合,代表著這個資料型別不是某一種,可能是兩種或兩種以上!
不用矇圈,大家還記得
strpos
的返回值可能是什麼嗎?有的話就是數值,沒有的話就是
false
,所以strpos
前面就放了
mixed!所以
mixed $needle
大家能理解了吧,
$neddle
可能是字串,也可能是另外一種資料型別,比如是數值!
所以手冊中格式的意思就是:
返回 needle
在 haystack
中首次出現的數字位置
(needle
是針,haystack
是稻草堆
,去找稻草堆裡找針
,這樣記憶是不是很方便
),注意字串位置是從
0開始,而不是從
1開始的
.如果沒找到
needle
,將返回
false.
看到這裡
,有的小夥伴就要發問了
,3個引數
,我們只講了2個
,那個
$offset
引數是幹什麼用的呢
?想知道它是幹什麼用的
,必然跳不過去認識
offset
這個詞,
英文詞典給出的是 抵消
,補償
,聽著有點恍惚了
.其實它的意思就是 隔過去n個
,就像你打麻將一樣
,你不出牌
,很可能就會被下家給隔了
.而且
$offset
型別是
int ,
你這裡輸入的是幾
,它就幫你隔過去幾個字元
,然後再開始查詢
.下面我們借助示例
,來學習使用
$offset
引數
$daocaodui = 'abcdef abcdef';
$zhen = 'a';
$address = strpos($daocaodui, $zhen, 1);
echo $address;
小夥伴們說說輸出的結果是多少呢?7
很好,我想能夠正確地回答
7的時候
,你對這個手冊的應用應該很到位了!
PHP strlen 函式和strpos 函式
strlen 函式返回字串的長度 字元數 echo strlen hello world 上面的 將輸出 12 strpos 函式用於在字串內查詢乙個字元或一段指定的文字。如果在字串中找到匹配,該函式會返回第乙個匹配的字元位置。如果未找到匹配,則返回 false。下面的例項在字串 hello wor...
PHP中的strpos 函式
strpos 函式是用來查詢字串首次出現的位置,返回型別為int,但是如是找不到該字元,返回布林型的false值。1.判斷乙個字串是否包含另乙個字串,示例 如下 header content type text html charset utf 8 a how old are you?find ar...
php 使用函式中遇到的坑之 strpos
strpos 查詢字串首次出現的位置 mixed strpos string haystack,mixed needle int offset 0 mystring abc findme a pos strpos mystring,findme 注意這裡使用的是 簡單的 不能像我們期待的那樣工作,因...