溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP按符號截取字符串的指定部分

發(fā)布時間:2020-06-22 22:37:01 來源:網(wǎng)絡(luò) 閱讀:3322 作者:帥白123 欄目:web開發(fā)

字符串截取在php開發(fā)中是比較常用的;而且對于截取的需求也有很多種;就比如說對url鏈接的操作:http://www.baijunyao.com/index.php/Home/Index/article/aid/12

有時我們想截取最后一個斜杠'/'后面的數(shù)字;

有時我們又需要截取第一個斜杠'/'前面的內(nèi)容判斷用戶輸入的url鏈接帶不帶http://等等;

字符串的截取php內(nèi)置函數(shù)就有很多種;簡單的寫幾個示例;

$str='123/456/789/abc';

截取第一個斜杠前面的內(nèi)容可以這樣來:

echo substr($str,0,strpos($str, '/'))

    或者

$array=explode('/', $str);
echo $array[0];
// 輸出 123

截取第一個斜杠后面的內(nèi)容可以這樣來:

echo substr($str,strpos($str,'/')+1);
//輸出 456/789/abc


截取最后一個斜杠后面的內(nèi)容可以這樣來:

echo trim(strrchr($str, '/'),'/');

    或者如果知道斜杠的個數(shù)

$array=explode('/', $str);
echo $array[3];
//輸出 abc


但是問題來了;如果不知道有多少個斜杠呢?如果想要第二個斜杠和第三個斜杠中間的內(nèi)容呢?

下面我寫的這個函數(shù)就可以輕松解決如上 所有問題;

/**
 * 按符號截取字符串的指定部分
 * @param string $str 需要截取的字符串
 * @param string $sign 需要截取的符號
 * @param int $number 如是正數(shù)以0為起點從左向右截  負(fù)數(shù)則從右向左截
 * @return string 返回截取的內(nèi)容
 */

function cut_str($str,$sign,$number){
    $array=explode($sign, $str);
    $length=count($array);
    if($number<0){
        $new_array=array_reverse($array);
        $abs_number=abs($number);
        if($abs_number>$length){
            return 'error';
        }else{
            return $new_array[$abs_number-1];
        }
    }else{
        if($number>=$length){
            return 'error';
        }else{
            return $array[$number];
        }
    }
}

示例:

echo cut_str($str,'/',0); //輸出 123
echo cut_str($str,'/',2); //輸出 789
echo cut_str($str,'/',-1);//輸出 abc
echo cut_str($str,'/',-3);//輸出 456

怎么樣;用這個函數(shù)來按符號截取指定部分內(nèi)容足夠強大吧;

PHP按符號截取字符串的指定部分


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI