php 字串的擷取和查詢

2022-07-16 09:48:10 字數 2157 閱讀 1558

一、strstr

定義:strstr(str1,str2) 函式用於判斷字串str2是否是str1的子串。如果是,則該函式返回str2在str1中首次出現的位址;否則,返回null

$email   =  '[email protected]';

$domain = strstr ( $email , '@');

echo

$domain ; //

列印 @163.com

$user = strstr ( $email , '@' , true ); //

從 php 5.3.0 起

echo

$user ; //

列印 13366540193

二、strpos

strpos — 查詢字串在另乙個字串中首次出現的位置

mixed strops(string $haystack,$mixed $needle,[int $offset=0])
返回needlehaystack中首次出現的數字位置,從0開始查詢,區分大小寫。

引數:

haystack,在該字串中進行查詢。

needle,如果needle不是乙個字串,那麼它將被轉化為整型並被視為字元的順序值。

offset,如果提供了此引數,搜尋會從字串該字元數的起始位置進行統計。和strrpos()、strripos()不一樣,這個偏移量不能是負數。

echo strpos("

you love php, i love php too!

","php");

結果:9

stripos()函式,與strpos()函式類似,不過其不區分大小寫。

沒有找到要用 ===false 做判斷

三、substr

substr() 函式返回字串的一部分

substr(string,start,length)

引數:1,string 即你要擷取的字串

2,start 即要擷取的開始位置(0表示從從前往後數 第乙個字元開始,負數表示從從後往前數)

eg:start=1,表示從從前往後開始的第二個數開始擷取,start=-1,表示從從後往前開始的第一(是第一不是第二哦)個數開始擷取,

3,length 當為正數時,為需要擷取的長度;當為負數時,即理解為去掉末尾的幾個字元

eg:length=3,表示擷取三個長度;length=-2,即為去掉末尾的兩個字元

<?php

$rest = substr("abcdef", 0, -1); //

返回 "abcde"

$rest = substr("abcdef", 2, -1); //

返回 "cde"

$rest = substr("abcdef", 4, -4); //

返回 ""

$rest = substr("abcdef", -3, -1); //

返回 "de"

?>

//

訪問字串中的單個字元

// 也可以使用中括號

$string = 'abcdef';

echo

$string[0]; //

aecho

$string[3]; //

decho

$string[strlen($string)-1]; //

f

//中文字串的擷取和獲取長度 mb_substr()

$str = '我abc是誰'; //

utf-8編碼的字串

echomb_substr($str, 0, 2, 'utf-8'); //

輸出 我a

$str = '我是誰';  //

gbk編碼的字串

echo mb_substr($str, 0, 1, 'gbk'); //

輸出 我

CString字串查詢和擷取

該函式從左側0索引開始,查詢第乙個出現的字元位置 cstring str abc int postion str.find a 如果查到,返回以0索引起始的位置 未查到,返回 1。給定一字串,然後查詢其中出現的第乙個字元位置 cstring str abc int position str.find...

CString字串查詢和擷取

1 find 該函式從左側0索引開始,查詢第乙個出現的字元位置,返回position。示例如下 cstring s abcdef assert s.find b 1 int f s.find de 結果 f 3 返回值 如果查到,返回以0索引起始的位置 未查到,返回 1 2 findoneof 給定...

php的字串擷取

這個功能在php輸出頁面的時候很常用 就是把乙個字串擷取為不大於某個長度的字串。本身是很簡單的事情,但是附加了一些需求 1,字串中含有中文,也就是單位元組雙位元組混著的。2,字串中含有html 對於中文擷取,網上有現成的 可以拿來用,就像這樣 function trunk str most,retu...