当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP按符号截取字符串的指定部分的实现方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-10-29 09:50:31 浏览: 评论:0 

字符串截取在php开发中是比较常用的,而且对于截取的需求也多种多样,这篇文章主要介绍了PHP按符号截取字符串的指定部分 ,需要的朋友可以参考下。

字符串截取在php开发中是比较常用的;

而且对于截取的需求也有很多种;

有时我们想截取最后一个斜杠'/'后面的数字;

有时我们又需要截取第一个斜杠'/'前面的内容判断用户输入的url链接带不带http://等等;

字符串的截取php内置函数就有很多种;

简单示例如下;

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

截取第一个斜杠前面的内容可以这样来:

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

或者

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

截取第一个斜杠后面的内容可以这样来:

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

如果知道斜杠的数量

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

如果不知道有多少个斜杠呢?如果想要第二个斜杠和第三个斜杠中间的内容呢?

下面这个函数就可以轻松解决如上 所有问题;

  1. /** 
  2. * 按符号截取字符串的指定部分 
  3. * @param string $str 需要截取的字符串 
  4. * @param string $sign 需要截取的符号 
  5. * @param int $number 如是正数以0为起点从左向右截 负数则从右向左截 
  6. * @return string 返回截取的内容 
  7. */ 
  8. function cut_str($str,$sign,$number){ 
  9.  $array=explode($sign$str); 
  10.  $length=count($array); 
  11.  if($number<0){ 
  12.   $new_array=array_reverse($array); 
  13.   $abs_number=abs($number); 
  14.   if($abs_number>$length){ 
  15.    return 'error'
  16.   }else
  17.    return $new_array[$abs_number-1]; 
  18.   } 
  19.  }else
  20.   if($number>=$length){ 
  21.    return 'error'
  22.   }else
  23.    return $array[$number]; 
  24.   } 
  25.  } 

示例

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

补充:下面看下php截取指定两个字符之间字符串

  1. /** 
  2.  * php截取指定两个字符之间字符串,默认字符集为utf-8 Power by 大耳朵图图 
  3.  * @param string $begin 开始字符串 
  4.  * @param string $end 结束字符串 
  5.  * @param string $str 需要截取的字符串 
  6.  * @return string 
  7.  */ 
  8. function cut($begin,$end,$str){ 
  9.  $b = mb_strpos($str,$begin) + mb_strlen($begin); 
  10.  $e = mb_strpos($str,$end) - $b
  11.  
  12.  return mb_substr($str,$b,$e); 

调用

echo $this->cut('token/','?code',$redirectUrl);die;

上面的方法不是很好用,当截取的是值为串的时候,会出现截取不到的情况用下面的吧

  1. /* 
  2.  * php截取指定两个字符之间字符串 
  3.  * */ 
  4. function get_between($input$start$end) { 
  5.  $substr = substr($inputstrlen($start)+strpos($input$start),(strlen($input) - strpos($input$end))*(-1)); 
  6.  return $substr

调用

$sVid = $this->get_between($redirectUrl, "token/", "?code=");

Tags: PHP截取字符串

分享到: