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

字符串截取在php開發中是比較經常使用的;並且對於截取的需求也有不少種;就好比說對url連接的操做:http://www.baijunyao.com/index.php/Home/Index/article/aid/12 php

有時咱們想截取最後一個斜槓'/'後面的數字; 函數

有時咱們又須要截取第一個斜槓'/'前面的內容判斷用戶輸入的url連接帶不帶http://等等; url

字符串的截取php內置函數就有不少種;簡單的寫幾個示例; spa

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

截取第一個斜槓前面的內容能夠這樣來: ci

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

    或者 開發

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

截取第一個斜槓後面的內容能夠這樣來: 字符串

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


截取最後一個斜槓後面的內容能夠這樣來: get

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

    或者若是知道斜槓的個數 博客

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


可是問題來了;若是不知道有多少個斜槓呢?若是想要第二個斜槓和第三個斜槓中間的內容呢? string

下面我寫的這個函數就能夠輕鬆解決如上 全部問題;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
 * 按符號截取字符串的指定部分
 * @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];
        }
    }
}

示例:

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

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

1.jpg

本文爲白俊遙原創文章,轉載無需和我聯繫,但請註明來自白俊遙博客baijunyao.com

相關文章
相關標籤/搜索