PHP 字串 搜尋 / 比對 / 比較 /切割 / 分割 / 子字串
PHP 字串 搜尋 / 比對 / 比較 /切割 / 分割 / 子字串
資料來源: https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/257312/
https://pjchender.blogspot.com/2015/05/php.html
字串搜尋第一種方法:用php的strpos() 函式判斷字串中是否包含某字串的方法
if(strpos('www.jb51.net','jb51') !== false){ echo '包含jb51'; }else{ echo '不包含jb51'; }
字串搜尋第二種 使用了explode
用explode進行判斷PHP判斷字串的包含程式碼如下:
<?php $name = "001x.gif"; $pan = "x"; $con = explode($pan,$name); if (count($con)>1): echo $name."中包含".$pan; else: echo $name."中沒有包含".$pan; endif; ?>
字串搜尋第三種strstr
strstr() 函式搜尋一個字串在另一個字串中的第一次出現。
該函式返回字串的其餘部分(從匹配點)。如果未找到所搜尋的字串,則返回 false。
<?php /*如手冊上的舉例*/ $email = 'user@example.com'; $domain = strstr($email, '@'); echo $domain; // prints @example.com ?>
字串搜尋第四種、stristr
stristr() 函式查詢字串在另一個字串中第一次出現的位置。 如果成功,則返回字串的其餘部分(從匹配點)。如果沒有找到該字串,則返回 false。 它和strstr的使用方法完全一樣.唯一的區別是stristr不區分大小寫.
字串切割: str_replace
str_replace(尋找的字串,取代成的字串,原字串)可以用來取代字串中的內容,使用範例可以參考PHP官方網站。
$string_example='Hello, welcome to PJCHENder'; $replace_example = str_replace('H',"W",$string_example); echo $replace_example; //結果是:Wello, welcome to PJCWENder
字串切割: explode
explode(目標字串,原字串)可以把字串根據目標字元替代成陣列,使用範例可以參考PHP官方網站。
$string_example='Hello, welcome to PJCHENder'; $replace_example = explode(" ",$string_example); print_r( $replace_example); //輸出結果是:Array ( [0] => Hello, [1] => welcome [2] => to [3] => PJCHENder )
如果是想要根據許多不同的目標字串來拆成陣列,可以參考官網最下方的討論,有人提供了一個相當簡單的function。簡單來說,就是先用str_replace把目標字串,都先取代成一個符號,接著再利用explode把那個符號拆開。
寫法像是這樣:
$string_example='Hello,welcome+to-PJCHENder'; // 先把所有目標字串取代成_ $replace_example = str_replace(array(",","+","-"),'_',$string_example); // 在根據_把字串拆成不同陣列 $replace_array = explode('_',$replace_example); print_r( $replace_array); //輸出結果是:Array ( [0] => Hello, [1] => welcome [2] => to [3] => PJCHENder )
字串切割: str_split
str_split(原字串,位元長度)可以根據位元長度(空白也算一個字元)來將字串中的內容切割成許多不同的陣列,使用範例可以參考PHP官方網站。
$string_example='Hello,welcome to PJCHENder'; $replace_example = str_split($string_example,3); print_r( $replace_example); //輸出結果是:Array ( [0] => Hel [1] => lo, [2] => wel [3] => com [4] => e t [5] => o P [6] => JCH [7] => ENd [8] => er )
字串切割: substr_count
sub_strcount(被搜尋的字串,目標字串)用來計算被搜尋的字串中,出現多少次目標字串
$string_example='This is PJCHENder website'; echo substr_count($string_example,"is"); //用來看被搜尋的字串中,出現幾次目標字串 // 輸出結果2
字串切割: count
count(陣列名稱)可以計算該陣列的元素數目,使用範例可以參考PHP官方網站。
$string_example='Hello,welcome to PJCHENder'; $replace_example = str_split($string_example,3); $num_of_array=count($replace_example); echo $num_of_array; //輸出結果是:9
字串切割: array_splice
array_splice(陣列名稱,起始位置,長度,置換元素)可以用來刪除陣列元素,或者是把特定位置的陣列元素刪除後,再把新的元素內容代換進去PHP官方網站。
$string_example='Hello welcome to PJCHENder'; $replace_example = explode(" ",$string_example); // 輸出結果:Array ( [0] => Hello [1] => welcome [2] => to [3] => PJCHENder ) array_splice($replace_example,1);//陣列位置1以後的都刪除 // 輸出結果:Array ( [0] => Hello ) array_splice($replace_example,1,2);//陣列位置1以後的刪除兩個 // 輸出結果:Array ( [0] => Hello [1] => PJCHENder ) array_splice($replace_example,1,2,'Aaron');//陣列位置1以後的刪除兩個,並且插入一個新的元素 // 輸出結果:Array ( [0] => Hello [1] => Aaron [2] => PJCHENder )
字串切割: in_array
in_array(目標元素,被搜尋的陣列)用來在被搜尋的陣列中,檢驗目標元素是否存在,回傳1(true)或空值(false),需注意的是目標元素若是字串的時候,則對於字母大小寫是有區別的(case-sensitive)
我們可以看一下下面的範例,首先透過explode這個函式,我先把字串拆成陣列,接著,我用了一個簡易的if判斷式,用法是這樣的(如果)…?(為真時呈現):(為假時呈現)
$string_example='Hello, welcome to PJCHENder'; $replace_example = explode(" ",$string_example); print_r( $replace_example); // 輸出結果是:Array ( [0] => Hello, [1] => welcome [2] => to [3] => PJCHENder ) echo in_array("PJCHENder",$replace_example) ? "True" : "False"; // 輸出結果是True echo in_array("pjchender",$replace_example) ? "True" : "False"; // 輸出結果是False echo in_array("aaron",$replace_example) ? "True" : "False"; // 輸出結果是False