大家在开发中可能会遇到需要截取某一个部分的内容,方法有很多,可以使用正则,也可以用内置函数,但该如何才能尽人意呢?傲世今天就给大家开开眼。

对于截取的需求也分很多种,字符串的截取php内置函数就有很多种;

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

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

简单示例如下:

$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 as_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截取指定两个字符之间字符串

* @param string $str 需要截取的字符串

* @param string $start 从这一部分开始截取

* @param int $end 到这一部分结束截取

* @return string 返回截取的内容

* */

function get_between($str, $start, $end)

{

$substr = substr($str, strlen($start) + strpos($str, $start), (strlen($str) - strpos($str, $end)) * (-1));

return $substr;

}

使用方法:

echo get_between($redirectUrl, "token/", "?code=");

本文标签:PHP

版权声明:若无特殊注明,本文为《小傲世》原创,转载请保留文章出处。

本文链接:https://pjax.vip/190.html

正文到此结束

php字符串以符号截取,PHP按符号截取字符串的指定部分的实现方法相关推荐

  1. php截取多个分割符号_PHP按符号截取字符串的指定部分的实现方法

    字符串截取在php开发中是比较常用的: 而且对于截取的需求也有很多种: 有时我们想截取最后一个斜杠'/'后面的数字: 有时我们又需要截取第一个斜杠'/'前面的内容判断用户输入的url链接带不带http ...

  2. java按特殊标志截取_java 字符串分割处理split及特殊符号

    String类型的对象在 用split()方法进行字符分割的时候常常会遇到用特殊字符进行分割的情况,看JDK知道split()实际上是用的正则实现的分割,当遇到一些用特殊 字符作为分割标志的时候,不使 ...

  3. WPS表格Excel:截取中间内容、截取两符号之间内容

    WPS表格Excel:截取中间内容.截取两符号之间内容 原始数据和目标 观察得知:我们需要截取冒号和右中括号之间的内容 方法一:WPS智能填充(一次性方式) 先给wps举个例子 选中需要填充的区域Ct ...

  4. linux strcpy 用法,由Linux中管道的buffer,浅谈C语言中char类型字符串拷贝使用strcpy()和=赋值符号的区别...

    今天在写父子进程用两个单向管道通信时,出现了错误: Segmentation fault (core dumped) 打开core文件发现: 附上源码: 1 #include 2 #include 3 ...

  5. NLP:以周杰伦的《Mojito》歌词为例字符串切分之清除一段由列表组成的字符串文本中的所有杂乱符号

    NLP:以周杰伦的<Mojito>歌词为例字符串切分之清除一段由列表组成的字符串文本中的所有杂乱符号 目录 以周杰伦的<Mojito>歌词为例字符串切分之清除一段由列表组成的字 ...

  6. 经典:统计字符串中汉字,英文,数字,特殊符号个数

    经典:统计字符串中汉字,英文,数字,特殊符号个数 package wzs.arithmetics;/*** 分别统计出其中字符串中汉字,英文字母,数字,其他字符数量* @author wWX15478 ...

  7. c语言中管道符作用,由Linux中管道的buffer,浅谈C语言中char类型字符串拷贝使用strcpy()和=赋值符号的区别...

    今天在写父子进程用两个单向管道通信时,出现了错误: Segmentation fault (core dumped) 打开core文件发现: 附上源码: 1 #include 2 #include 3 ...

  8. java字符串校验,过滤筛选中英文符号

    需求说明:空格.符号.全数字 ,符号中英文符号的文本,要拦截,不让通过. 这里是用String pattern = "\\p{P}+"; 来过滤筛选出中英文符号. 代码例子: pr ...

  9. java截取split_Java使用split截取字符串过程解析

    这篇文章主要介绍了Java使用split截取字符串过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 作用背景:一串字符串中的信息有些是有用的有 ...

最新文章

  1. 写文件 —— 将内容按照指定格式写入配置文件(fwrite()函数-》》向指定的文件中写入若干数据块)
  2. 初等数论--同余方程--同余方程组:中国剩余定理
  3. 中国锂电池行业发展机遇及营销策略前景研究报告2021-2027年版
  4. 线程的生命周期和状态控制
  5. boost::thread_group相关的测试程序
  6. drive es 软件兼容_某知名软件被完美修改!对不住了!
  7. Windows10/11安装Linux子系统Ubuntu 20.04LTS,轻松使用生信软件,效率秒杀虚拟机
  8. 美国副教授现身说法:如何改变“只收藏不阅读”的习惯
  9. 疑似小米11 Pro保护壳曝光:横向矩阵相机设计
  10. 【Demo 0015】坐标系
  11. 重读领域驱动设计——如何说好一门通用语言
  12. 分享六:php脚本守护进程
  13. 微信小程序统一封装request请求,统一拦截校验
  14. 运维人员的三种层次:看看你是背锅侠,还是闪修侠?
  15. java 内存文件_Java内存映射文件(Memory Mapped Files)
  16. 论文解读:Structural Optimization Makes Graph Classification Simpler and Better
  17. word柱状图垂直轴数值设定_EXCEL中的图表坐标轴数值 如何设置
  18. GCD深入学习之GCD的初识
  19. opencv实践中遇到的问题
  20. 微信、Uber、阴谋论和口袋罪

热门文章

  1. nw.js 打包换桌面图标_我如何使用CometChat和NW.js构建桌面聊天应用程序(以及方法)
  2. react 渲染道具_如何在浏览器中查看您的React状态和道具
  3. 笛卡尔函数_笛卡尔,伯克利和函数式React式编程
  4. css3 下边框缓缓划过_CSS3 框大小
  5. 进度计划软件哪个好用_斑马进度计划软件学习视频-资源管理
  6. ubuntu安装sqoop1.4.7
  7. go rpc安装方法
  8. Python快速安装库的靠谱办法
  9. 由dataview生成对应的datatable的方法
  10. C#实现局域网UDP广播