網(wǎng)站制作推廣方案整合營銷經(jīng)典案例
一 字符串包含
1.1 str_starts_with(string $haystack
, string $needle
)
php8版本中新函數(shù)。
檢查字符串是否以指定子串開頭,區(qū)分大小寫。返回布爾值。
$haystack待判斷的字符串,$needle需要查詢的內(nèi)容。
function test1() {$str = "Qwe asd zxc 123";if (str_starts_with($str, '')) {echo __LINE__ . PHP_EOL; //5}if (str_starts_with($str, 'Qwe')) {echo __LINE__ . PHP_EOL; //8}if (str_starts_with($str, 'qwe')) {echo __LINE__ . PHP_EOL; //11}
}
test1();
?測試結(jié)果
5
8
1.2 str_ends_with(string $haystack
, string $needle
)
php8版本中新函數(shù)。
檢查字符串是否以指定子串結(jié)尾。返回布爾值。區(qū)分大小寫。
$haystack待判斷的字符串,$needle需要查詢的內(nèi)容。
function test3() {$str = "Qwe asd zxc 123 z";var_dump(str_ends_with($str, "Z"));var_dump(str_ends_with($str, "z"));var_dump(str_ends_with($str, "q"));var_dump(str_ends_with($str, "123"));
}
test3();
?測試結(jié)果
bool(false)
bool(true)
bool(false)
bool(false)
1.3 strstr(string $haystack
, string $needle
, bool $before_needle
= false
)
查找字符串的首次出現(xiàn)。返回字符串或布爾值。區(qū)分大小寫。
1.4 stristr(string $haystack
, string $needle
, bool $before_needle
= false
)
strstr()函數(shù)的忽略大小寫版本。
function test4() {$str = "Qwe asd zxc 123 z";var_dump(strstr($str, "Qwe"));var_dump(strstr($str, "we"));var_dump(strstr($str, "we", true));var_dump(strstr($str, "q"));var_dump(stristr($str, "q"));
}
test4();
?測試結(jié)果
string(17) "Qwe asd zxc 123 z"
string(16) "we asd zxc 123 z"
string(1) "Q"
bool(false)
string(17) "Qwe asd zxc 123 z"
1.5 strpos(string $haystack
, string $needle
, int $offset
= 0)
查找字符串首次出現(xiàn)的位置。計(jì)算從零開始,也就是返回1,代表字符串中第二個(gè)位置;偏移到字符串第二個(gè)字符,偏移量是2。區(qū)分大小寫。返回整數(shù)或者布爾值。
第一個(gè)字符返回值為0,應(yīng)該使用0===$value判斷。不存在返回false,應(yīng)該使用false===$value判斷。
$offset 為偏移量。
1.6 stripos(string $haystack
, string $needle
, int $offset
= 0)
strpos()函數(shù)的忽略大小寫版本。
function test5() {$str = "Qwe asd zxc 123 we";var_dump(strpos($str, "Qwe"));var_dump(strpos($str, "we"));var_dump(strpos($str, "we", 2));var_dump(strpos($str, "q"));var_dump(stripos($str, "WE"));
}
test5();
?測試結(jié)果
int(0)
int(1)
int(16)
bool(false)
int(1)
1.7 strpbrk(string $string
, string $characters
)
在字符串中查找一組字符的任何一個(gè)字符。
返回以找到的字符開始的子字符串。如果沒有找到,則返回 false
。
$string 在string中查找characters字符串。
$characters 要查詢的內(nèi)容。區(qū)分大小寫。
function test7() {$str = "Qwe asd zxc 123 we";$info = strpbrk($str, 'a');var_dump($info);$info = strpbrk($str, 'A');var_dump($info);
}
test7();
?測試結(jié)果
string(14) "asd zxc 123 we"
bool(false)
1.8 preg_match()
執(zhí)行匹配正則表達(dá)式。匹配到返回1,未匹配到返回0或者false。
參數(shù)
$pattern 正則表達(dá)式
$subject
需驗(yàn)證的字符串。 避免使用substr()。&$matches
匹配結(jié)果$flags
? 偏移量$offset
開始搜索位置
$flags說明
PREG_OFFSET_CAPTURE
附加偏移量
PREG_UNMATCHED_AS_NULL
使用該標(biāo)記,未匹配的子組會(huì)報(bào)告為null
;未使用時(shí),報(bào)告為空的 string。
function test8() {$str = "Qwe asd zxc 123 we";$pattern = '/(?<=d).*(?=w)/';$result = preg_match($pattern, $str, $info, PREG_OFFSET_CAPTURE);var_dump($result);var_dump($info);$result = preg_match($pattern, $str, $info, PREG_OFFSET_CAPTURE, 8);var_dump($result);var_dump($info);
}
test8();
?測試結(jié)果
int(1)
array(1) {[0]=>array(2) {[0]=>string(9) " zxc 123 "[1]=>int(7)}
}
int(0)
array(0) {
}
1.9 str_word_count(string $string
, int $format
= 0, ?string $characters
= null
)
返回字符串中單詞的使用情況。返回?cái)?shù)組或整數(shù)
如果指定了 format
參數(shù),返回值將是一個(gè)數(shù)組,數(shù)組的內(nèi)容則取決于 format
參數(shù)。
$format
- 0 返回單詞數(shù)量
- 1 返回一個(gè)包含
string
中全部單詞的數(shù)組 - 2 返回關(guān)聯(lián)數(shù)組。數(shù)組的鍵是單詞在
string
中出現(xiàn)的數(shù)值位置,數(shù)組的值是這個(gè)單詞
$characters
附加的字符串列表,其中的字符將被視為單詞的一部分。
function test9() {$str = "Qwe asd zxc 123 we";$info = str_word_count($str);var_dump($info);$info = str_word_count($str, 1);var_dump($info);$info = str_word_count($str, 0, "123456^ ^");var_dump($info);$info = str_word_count($str, 1, "123456^ ^");var_dump($info);$info = str_word_count($str, 2, "123456^ ^");var_dump($info);
}
test9();
測試結(jié)果
int(4)
array(4) {[0]=>string(3) "Qwe"[1]=>string(3) "asd"[2]=>string(3) "zxc"[3]=>string(2) "we"
}
int(1)
array(1) {[0]=>string(18) "Qwe asd zxc 123 we"
}
array(1) {[0]=>string(18) "Qwe asd zxc 123 we"
}
?被操作的字符串中數(shù)字會(huì)被過濾掉,除非在$characters中添加數(shù)字或需最為單詞的字符。
沒發(fā)現(xiàn)
$format 設(shè)置為1或2中區(qū)別。
二 字符串分割
2.1 explode(string $separator
, string $string
, int $limit
= PHP_INT_MAX
)
使用一個(gè)字符串分割另一個(gè)字符串。
$separator 分隔符
$string 字符串
$limit 限制數(shù)量。
正數(shù)返回從0開始的指定長度內(nèi)容,最后一個(gè)值為字符串剩余部分。
負(fù)數(shù)返回從末尾開始倒數(shù)的內(nèi)容,直到數(shù)組開始,和substr長度的設(shè)置一個(gè)原理。
傳0視為1,返回包含整個(gè)字符串的數(shù)組。
默認(rèn)為內(nèi)置常量PHP_INT_MAX,最大整數(shù)。
無對(duì)應(yīng)內(nèi)容,返回包含整個(gè)字符串的數(shù)組。
function test6() {$str = "Qwe asd zxc 123 we";$arr2 = explode("W", $str);var_dump($arr2);$arr3 = explode(" ", $str, -2);var_dump($arr3);$arr1 = explode(" ", $str, 0);var_dump($arr1);$arr4 = explode(" ", $str, 1);var_dump($arr4);$arr5 = explode(" ", $str, 2);var_dump($arr5);
}
test6();
?測試結(jié)果
array(1) {[0]=>string(18) "Qwe asd zxc 123 we"
}
array(3) {[0]=>string(3) "Qwe"[1]=>string(3) "asd"[2]=>string(3) "zxc"
}
array(1) {[0]=>string(18) "Qwe asd zxc 123 we"
}
array(1) {[0]=>string(18) "Qwe asd zxc 123 we"
}
array(2) {[0]=>string(3) "Qwe"[1]=>string(14) "asd zxc 123 we"
}
2.2 substr(string $string
, int $offset
, ?int $length
= null
)
返回字符串字串。字符串長度小于偏移量返回空字符串。
$offset 偏移量。
為正數(shù)從0開始計(jì)算。
為負(fù)從尾開始計(jì)算,倒數(shù)指定的偏移量開始計(jì)算指定長度。
$length 指定長度。
為正數(shù)
從offset
處開始最多包括length
個(gè)字符。最多返回到字符串結(jié)尾,即length大于字符串長度,返回到字符串結(jié)尾的長度。- 為0,返回空字符串
- 為null返回整個(gè)字符串
- 為負(fù),那么
string
末尾處的length
個(gè)字符將會(huì)被省略。若offset
是負(fù)數(shù)則從字符串尾部算起。如果offset
不在這段文本中,那么將返回空字符串。
function test10() {$str = "Qwe asd zxc 123 we";$info = substr($str, 2);var_dump($info);$info = substr($str, 2, 2);var_dump($info);$info = substr($str, 2, 20);var_dump($info);$info = substr($str, -10, 2);var_dump($info);$info = substr($str, -10, 20);var_dump($info);$info = substr($str, 0);var_dump($info);
}
test10();
測試結(jié)果
string(16) "e asd zxc 123 we"
string(2) "e "
string(16) "e asd zxc 123 we"
string(2) "zx"
string(10) "zxc 123 we"
string(18) "Qwe asd zxc 123 we"
2.3 substr_count(string $haystack
,string $needle
,int $offset
= 0,?int $length
= null
)
計(jì)算字串出現(xiàn)的次數(shù)。該函數(shù)返回 int。
在$haystack中查找$needle字符串。
$offset 偏移量。
開始計(jì)數(shù)的偏移位置。如果是負(fù)數(shù),就從字符的末尾開始統(tǒng)計(jì)。
$length
指定偏移位置之后的最大搜索長度。如果偏移量加上這個(gè)長度的和大于 haystack
的總長度,則打印警告信息。 負(fù)數(shù)的長度 length 是從 haystack
的末尾開始統(tǒng)計(jì)的。
function test11() {$str = "Qwe asd zxc 123 we";try{$info = substr_count($str, " ", 5, 5);var_dump($info);} catch (\Throwable $e) {var_dump($e->getTraceAsString());}try{$info = substr_count($str, " ", 5, 100);var_dump($info);} catch (\Throwable $e) {var_dump($e->getTraceAsString());}try{$info = substr_count($str, " ", -5, 5);var_dump($info);} catch (\Throwable $e) {var_dump($e->getTraceAsString());}try{$info = substr_count($str, " ", -5, 100);var_dump($info);} catch (\Throwable $e) {var_dump($e->getTraceAsString());}
}
test11();
測試結(jié)果
int(1)
string(117) "#0 D:\workspace\php\test\test12.php(130): substr_count()
#1 D:\workspace\php\test\test12.php(150): test11()
#2 {main}"
int(1)
string(117) "#0 D:\workspace\php\test\test12.php(144): substr_count()
#1 D:\workspace\php\test\test12.php(150): test11()
#2 {main}"
我本地php8版本,cache(\Exception $e){} 捕獲不到異?!?/p>