首頁  >  文章  >  後端開發  >  php explode()函數的使用方法

php explode()函數的使用方法

怪我咯
怪我咯原創
2017-05-23 11:52:405754瀏覽

在php中分割一個字串,我們可以使用函數explode()實現,通常我們在開發專案中,想查看使用者透過表單或其它方式提交的字串的各個部分,以便於分類儲存和使用。例如,查看句子中的單字,或要將一個網址或電子郵件位址分割成一個個的組成部分。這時我們就可以使用explode()函數,本篇文章就來介紹一下php explode()函數的使用方法

在PHP開發手冊中,其函數原型如下所示:

array explode(string separator,string input [, int limit]);

此函數傳回由字串組成的數組,每個元素都是string 的一個子字串,它們被字串separator 作為邊界點分割出來。如果設定了 limit 參數,則傳回的陣列包含最多 limit 個元素,而最後那個元素將包含 string 的剩餘部分。

如果 separator 為空字串(""),explode() 將傳回 FALSE。如果 separator 所包含的值在 string 中找不到,那麼 explode() 將會傳回包含 string 單一元素的陣列。如果 limit 參數是負數,則傳回除了最後的 -limit 個元素外的所有元素。此特性是 PHP 5.1.0 中新增的。 由於歷史原因,雖然 implode() 可以接收兩種參數順序,但是 explode() 不行。你必須保證 separator 參數在 string 參數之前才行。

要在我們的PHP專案中,透過顧客的電子郵件地址獲得域名,可以使用如下所示的PHP腳本:

$email_array = explode('@', $email);

程式碼說明:在這裡,透過呼叫explode()函數,將顧客的電子郵件地址分割成兩部分:用戶名稱,它保存在數組的第一個元素中,也就是$email_array[0]中,而郵箱域名則保存在第二個數組元素$email_array[ 1]中。現在,我們已經可以測試網域名稱來判斷使用者的來源,然後將他們儲存到指定的位置:

if ($email_array[1]== "qq.com"){
$toaddress= "boss@qq.com";
} else{
$toaddress= "feedback@example.com";
}

請注意,如果網域是大寫的或大小寫混合的,這個函數就不能正常的起作用。你可以透過網域轉換(轉換成全是大寫或小寫)的方法來避免這個問題,然後再按照如下的方法來檢查是否正常匹配:

if (strtolower($email_array[1])== "qq.com"){
$toaddress= "boss@qq.com";
} else{
$toaddress= feedback@example.com;
}

下面我們看一個分割字串實例,程式碼如下:

<?php
header("content-type:text/html;charset=utf-8");
$this_year = 2017;
$text = <<< EOT
小李,F,1994,合肥,PHP程序员
小刘,M,1993,安庆,php工程师
小王,F,1991,六安,项目经理
EOT;
$lines = explode("\n", $text);    //将多行数据分开
foreach ($lines as $userinfo) {
    $info = explode(",", $userinfo, 3);  //仅分割前三个数据
    $name = $info[0];
    $sex = ($info[1] == "F")? "女" : "男";
    $age = $this_year - $info[2];
    echo "姓名: $name $sex . 年龄:$age <br/>";
}
?>

程式碼運行結果:

php explode()函數的使用方法

#【相關文章推薦】

1.php explode()函數實例詳解

以上是php explode()函數的使用方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn