字符串截取在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
|
怎麼樣;用這個函數來按符號截取指定部份內容足夠強大吧;
本文爲白俊遙原創文章,轉載無需和我聯繫,但請註明來自白俊遙博客baijunyao.com