PHP按符号截取字符串的指定部分

摘要:
如果你想要第二斜线和第三斜线之间的内容呢?以下功能可以轻松解决上述所有问题;1/**2*用符号3*@paramstring$str截取字符串的指定部分要截取的字符串4*@param string$sign要截取符号5*@parament$number如果是正数,请从左到右截取负数,以0为起点,从右到左截断6*@returnstring返回截取的内容7*/8functioncut_Str{9$array=explore;10$length=count;11if{12$new_array=array_reverse;13$abs_number=abs;14if{15return‘error’;16}else{17return$new_aarray〔$abs_number-1〕;18}19}else{20if{21return’error‘;22}els{23return$array〔$number〕;24}25}26}示例1 echo_Str;//输出1232echo_ str;//输出7893echo_ str;//输出abc4echo_ str;//输出456感谢您阅读此处~~~

字符串截取在php开发中是比较常用的;
而且对于截取的需求也有很多种;
就比如说对url链接的操作:http://baijunyao.com/article/12

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

字符串的截取php内置函数就有很多种;
简单示例如下;

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

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

1 echo substr($str,0,strpos($str, '/'))
或者
1 $array=explode('/', $str);
2 echo $array[0];
3 //输出 123

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

echo trim(strrchr($str, '/'),'/');
如果知道斜杠的数量
1 $array=explode('/', $str);
2 echo $array[3];
3 //输出 abc

如果不知道有多少个斜杠呢?如果想要第二个斜杠和第三个斜杠中间的内容呢?
下面这个函数就可以轻松解决如上 所有问题;

1 /**
2 * 按符号截取字符串的指定部分
3 * @param string $str 需要截取的字符串
4 * @param string $sign 需要截取的符号
5 * @param int $number 如是正数以0为起点从左向右截  负数则从右向左截
6 * @return string 返回截取的内容
7  */
8 function cut_str($str,$sign,$number){
9     $array=explode($sign, $str);
10     $length=count($array);
11     if($number<0){
12         $new_array=array_reverse($array);
13         $abs_number=abs($number);
14         if($abs_number>$length){
15             return 'error';
16         }else{
17             return $new_array[$abs_number-1];
18 }
19     }else{
20         if($number>=$length){
21             return 'error';
22         }else{
23             return $array[$number];
24 }
25 }
26 }

示例

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

感谢大家阅读到这里~~~

免责声明:文章转载自《PHP按符号截取字符串的指定部分》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Arduino常用的数据类型以及转换Explorer.EXE该文件没有与之关联的应用来执行该操作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Lua】手游聊天系统客户端完成总结

网上很多例子,我是参考这篇文章:http://www.myexception.cn/operating-system/1591495.html 1.聊天系统难题一:消息需要支持插入表情和换行。 一开始我打算借鉴上面文章中的方法自己用label和image拼接实现自己的富文本,后来同事建议我使用cocos2dx自带的富文本空间RichText,网上找了一些例...

aksk鉴权

简介 鉴权功能的位置处于基础服务的接入网关中。 1. 认证简介 本鉴权方案是在api层面上进行,通过使用Access Key/Secret Key加密的方法来对验证某个请求的调用者身份。 当接入网关接收到业务调用方的请求时,将使用相同的SK和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对。如果认证字符串相同,系统认为用户拥有指定的操作...

Qt sprintf_s函数格式化字符串出错

Qtsprintf_s函数格式化字符串出错 问题的出现: 我在VS上用c C++写的跨平台的函数 移植到Qt 上面 出现sprintf_s 函数格式化出错。 开始以为是编码问题 反复查找Qt乱码问题 。我的编译文件编码utf8 编译器minGW 32 默认编码应该也是utf8 照常说没错。 查了很多关于文件编码 执行编码的问题 https://www.c...

Python Django 前后端数据交互 之 HttpRequest、HttpResponse、render、redirect

在使用三神装的时候,首先当然是得要导入它们: from django.shortcuts import HttpResponse, render, redirect   一、HttpRequest捕获请求 捕获请求——HttpRequest对象 1、属性 HttpRequest.scheme  #一个字符串,表示请求的方案(通常是http或者https)H...

Delphi 中的字符串函数(6) StrUtils 中的 Ansi 字符串函数

//从左右两端提取指定数目的字符串: AnsiLeftStr、AnsiRightStr var ss,s: AnsiString; begin ss := 'abcdefg'; s := AnsiLeftStr(ss, 2); ShowMessage(s); {ab} s := AnsiRightStr(ss, 2); Show...

【216】◀▶ IDL 字符串操作说明 (黑底)

参考:String Processing Routines —— 字符串处理函数 参考:IDL_String Methods 01   STRING 返回字符串。 02   STRCMP 比较字符串,一样返回1,不一样返回0,默认大小写敏感。 03   STRMATCH 字符串进行比较,一致返回1,不一致返回0。 04   STRCOMP...