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


Posted in PHP onSeptember 10, 2018

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

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

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

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

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

简单示例如下;

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

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

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

或者

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

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

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

如果知道斜杠的数量

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

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

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

/**
 * 按符号截取字符串的指定部分
 * @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];
   }
  }
 }

示例

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

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

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

 return mb_substr($str,$b,$e);
}

调用

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

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

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

调用

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

总结

以上所述是小编给大家介绍的PHP按符号截取字符串的指定部分的实现方法 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP网上调查系统
Oct 09 PHP
php 学习资料零碎东西
Dec 04 PHP
PHP文件打开、关闭、写入的判断与执行代码
May 24 PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
Nov 10 PHP
php中删除字符串中最先出现某个字符的实现代码
Feb 03 PHP
php gzip压缩输出的实现方法
Apr 27 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
PHP长网址与短网址的实现方法
Oct 13 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
Nov 20 PHP
PHP远程连接oracle数据库操作实现方法图文详解
Apr 11 PHP
php 中htmlentities导致中文无法查询问题
Sep 10 #PHP
使用PHPExcel导出Excel表
Sep 08 #PHP
thinkPHP5.0框架事务处理操作简单示例
Sep 07 #PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
Sep 07 #PHP
php curl优化下载微信头像的方法总结
Sep 07 #PHP
Yii1.1框架实现PHP极光推送消息通知功能
Sep 06 #PHP
PHP日志LOG类定义与用法示例
Sep 06 #PHP
You might like
php二分法在IP地址查询中的应用
2008/08/12 PHP
PHP无刷新上传文件实现代码
2011/09/19 PHP
php中mysql模块部分功能的简单封装
2011/09/30 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
JS类的封装及实现代码
2009/12/02 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
这段js代码得节约你多少时间
2011/12/20 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
js实现全选和全不选功能
2020/07/28 Javascript
JavaScript canvas实现雨滴特效
2021/01/10 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
在Python中操作字典之update()方法的使用
2015/05/22 Python
Python中字典和集合学习小结
2017/07/07 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
python3让print输出不换行的方法
2020/08/24 Python
Python中Selenium模块的使用详解
2020/10/09 Python
菲律宾领先的在线时尚商店:Zalora菲律宾
2018/02/08 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
优质服务演讲稿
2014/05/14 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
大学生迟到检讨书500字
2014/10/17 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏