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生成带有雪花背景的验证码
Sep 28 PHP
php基础教程 php内置函数实例教程
Aug 21 PHP
解析yii数据库的增删查改
Jun 20 PHP
PHP5.5在windows安装使用memcached服务端的方法
Apr 16 PHP
php自定义函数截取汉字长度
May 15 PHP
Yii 快速,安全,专业的PHP框架
Sep 03 PHP
Yii框架form表单用法实例
Dec 04 PHP
PHP实现服务器状态监控的方法
Dec 09 PHP
php定义一个参数带有默认值的函数实例分析
Mar 16 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
微信支付PHP SDK ―― 公众号支付代码详解
Sep 13 PHP
laravel 执行迁移回滚示例
Oct 23 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
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
php5.3 注意事项说明
2013/07/01 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
PHP的password_hash()使用实例
2014/03/17 PHP
配置Nginx+PHP的正确思路与过程
2016/05/10 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
新页面打开实际尺寸的图片
2006/08/25 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
Angular之jwt令牌身份验证的实现
2020/02/14 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
Web服务器框架 Tornado简介
2014/07/16 Python
Python中的rfind()方法使用详解
2015/05/19 Python
如何在python中执行另一个py文件
2020/04/30 Python
Python调用飞书发送消息的示例
2020/11/10 Python
CSS3 毛玻璃效果
2019/08/14 HTML / CSS
如何用SQL语句进行模糊查找
2015/09/25 面试题
探亲邀请信范文
2014/01/30 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
2016年4月份红领巾广播稿
2015/12/21 职场文书
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python
一行Python命令实现批量加水印
2022/04/07 Python