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

來源:互聯網
上載者:User

標籤:起點   常用   too   length   部落格   取字串   url   ring   variable   

字串截取在php開發中是比較常用的;
而且對於截取的需求也有很多種;
就比如說對url連結的操作:http://baijunyao.com/article/12

有時我們想截取最後一個斜杠‘/‘後面的數字;
有時我們又需要截取第一個斜杠‘/‘前面的內容判斷使用者輸入的url連結帶不帶http://等等;

字串的截取php內建函數就有很多種;
簡單的寫幾個樣本;

$str=‘123/456/789/abc‘;
PHPCopy

截取第一個斜杠前面的內容可以這樣來:

echo substr($str,0,strpos($str, ‘/‘))
PHPCopy
或者
$array=explode(‘/‘, $str);echo $array[0];// 輸出 123
PHPCopy

截取第一個斜杠後面的內容可以這樣來:

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

截取最後一個斜杠後面的內容可以這樣來:

echo trim(strrchr($str, ‘/‘),‘/‘);
PHPCopy
或者如果知道斜杠的個數
$array=explode(‘/‘, $str);echo $array[3];//輸出 abc
PHPCopy

但是問題來了;如果不知道有多少個斜杠呢?如果想要第二個斜杠和第三個斜杠中間的內容呢?
下面我寫的這個函數就可以輕鬆解決如上 所有問題;

/** * 按符號截取字串的指定部分 * @param string $str 需要截取的字串 * @param string $sign 需要截取的符號 * @param int $number 如是正數以0為起點從左向右截  負數則從右向左截 * @return string 返回截取的內容 */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];        }    }}
PHPCopy

樣本:

echo cut_str($str,‘/‘,0); //輸出 123echo cut_str($str,‘/‘,2); //輸出 789echo cut_str($str,‘/‘,-1);//輸出 abcecho cut_str($str,‘/‘,-3);//輸出 456
PHPCopy

怎麼樣;用這個函數來按符號截取指定部分內容足夠強大吧;

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.