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 相关文章推荐
phpinfo 系统查看参数函数代码
Jun 05 PHP
php购物网站支付paypal使用方法
Nov 28 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
Mar 09 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
Sep 05 PHP
深入PHP数据加密详解
Jun 18 PHP
PHP中数组的分组排序实例
Jun 01 PHP
微信营销平台系统?刮刮乐的开发
Jun 10 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
Oct 23 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
Jul 21 PHP
PHP编写daemon process详解及实例代码
Sep 30 PHP
PHP实现的随机红包算法示例
Aug 14 PHP
PHP钩子实现方法解析
May 21 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 trim 去除空字符的定义与语法介绍
2010/05/31 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
JS获取整个页面文档的实现代码
2011/12/15 Javascript
网站404页面3秒后跳到首页的实例代码
2013/08/16 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
JavaScript中的substr()方法使用详解
2015/06/06 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
angular动态表单制作
2018/02/23 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
在Python中操作字符串之startswith()方法的使用
2015/05/20 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
python opencv实现旋转矩形框裁减功能
2018/07/25 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
python可迭代对象去重实例
2020/05/15 Python
python爬虫容易学吗
2020/06/02 Python
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
学生出入校管理制度
2014/01/16 职场文书
我的理想演讲稿
2014/04/30 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
信仰心得体会
2014/09/05 职场文书
小学少先队活动总结
2015/05/08 职场文书