天天看點

查找字元串在另一個字元串中是否存在

1. strstr

strstr() 函數搜尋一個字元串在另一個字元串中的第一次出現。

該函數傳回字元串的其餘部分(從比對點)。如果未找到所搜尋的字元串,則傳回 false。

代碼如下:

1

2

3

4

5

6

7

<?php

$email

=

'[email protected]'

;

$domain

=

strstr

(

$email

,

'@'

);

echo

$domain

;

// prints @example.com

?>

2. stristr

stristr() 函數查找字元串在另一個字元串中第一次出現的位置。

如果成功,則傳回字元串的其餘部分(從比對點)。如果沒有找到該字元串,則傳回 false。

它和strstr的使用方法完全一樣.唯一的差別是stristr不區分大小寫.

3. strpos

strpos函數傳回boolean值.FALSE和TRUE不用多說.用 “===”進行判斷.strpos在執行速度上都比以上兩個函數快,另外strpos有一個參數指定判斷的位置,但是預設為空.意思是判斷整個字元串.缺點是對中文的支援不好.

執行個體1

1

2

3

4

5

if

(

strpos

(

'www.jb51.net'

,

'jb51'

) !== false){

echo

'包含jb51'

;

}

else

{

echo

'不包含jb51'

;

}

執行個體2

1

2

3

$str

=

'abc'

;

$needle

=

'a'

;

$pos

=

strpos

(

$str

,

$needle

);

// 傳回第一次找到改字元串的位置,這裡傳回為1,若查不到則傳回False

4. explode

用explode進行判斷PHP判斷字元串的包含代碼如下:

1

2

3

4

5

6

7

8

9

function

checkstr(

$str

){

$needle

=

'a'

;

//判斷是否包含a這個字元

$tmparray

=

explode

(

$needle

,

$str

);

if

(

count

(

$tmparray

)>1){

return

true;

}

else

{

return

false;

}

}

5、substr例如我們需要判斷最後一個字元是不是制定字元

1

2

3

4

5

6

<?php

/*

$str1

=

"<p>這是個winrar專用的dll然後下哦啊不錯的dll檔案,QlogWin32.dll</p>"

;

if

(

substr

(

$str1

,-8)==

".dll</p>"

){

echo

substr

(

$str1

,0,-4);

}

6、substr_count統計“子字元串”在“原始字元串中出現的次數”

substr_count()函數本是一個小字元串在一個大字元串中出現的次數:

$number = substr_count(big_string, small_string);

正好今天需要一個查找字元串的函數,要實作判斷字元串big_string是否包含字元串small_string,傳回true或fasle;

查了半天手冊沒有找到現成的函數,于是想到可以用substr_count函數來實作代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

function

check_str(

$str

,

$substr

)

{

$nums

=substr_count(

$str

,

$substr

);

if

(

$nums

>=1)

{

return

true;

}

else

{

return

false;

}

}

php