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 相关文章推荐
超强分页类2.0发布,支持自定义风格,默认4种显示模式
Jan 02 PHP
PHP获取网卡地址的代码
Apr 09 PHP
php 安全过滤函数代码
May 07 PHP
php调用dll的实例操作动画与代码分享
Aug 14 PHP
PHP中的函数-- foreach()的用法详解
Jun 24 PHP
php获取操作系统语言代码
Nov 04 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
php post大量数据时发现数据丢失问题解决方法
Jun 20 PHP
Zend Framework教程之配置文件application.ini解析
Mar 10 PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
Jan 26 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的配置文件php.ini
2006/10/09 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
自己整理的一个javascript日期处理函数
2010/10/16 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
JS中关于正则的巧妙操作
2017/08/31 Javascript
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
2018/10/08 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
[03:55]2014DOTA2国际邀请赛 Fnatic经理采访赢DK在情理之中
2014/07/10 DOTA
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
Python字符串和字典相关操作的实例详解
2017/09/23 Python
Python批量更改文件名的实现方法
2017/10/29 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
Python requests库用法实例详解
2018/08/14 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
会计毕业生自荐信
2013/11/21 职场文书
服务行业个人求职的自我评价
2013/12/12 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书
安全生产学习心得体会
2016/01/18 职场文书
同学聚会开幕词
2019/04/02 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang