PHP 字串 搜尋 / 比對 / 比較 /切割 / 分割 / 子字串

 

字串搜尋第一種方法:用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

 

資料來源:
https://codertw.com/程式語言/257312/

https://pjchender.blogspot.com/2015/05/php.html

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *