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

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

字符串截取在php开发中是比较常用的;
而且对于截取的需求也有很多种;

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

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

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

PHP

Copy

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

echo substr($str,0,strpos($str, '/'))

PHP

Copy

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

PHP

Copy

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

echo substr($str,strpos($str,'/')+1); //输出 456/789/abc

PHP

Copy

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

echo trim(strrchr($str, '/'),'/');

PHP

Copy

或者如果知道斜杠的个数
$array=explode('/', $str); echo $array[3]; //输出 abc

PHP

Copy

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

/**
 * 按符号截取字符串的指定部分
 * @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];        }    } }

PHP

Copy

示例:

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

Copy

怎么样;用这个函数来按符号截取指定部分内容足够强大吧;
白俊遥博客

 

目录
相关文章
|
6月前
|
存储 PHP
php处理带emoji表情的字符数据
php处理带emoji表情的字符数据
34 0
|
6月前
|
PHP
php删除字符串中的所有空格
php删除字符串中的所有空格
35 0
|
JavaScript PHP 数据安全/隐私保护
解决php中字符串输出一样但比较不相等(编码不同导致长度不一样)
解决php中字符串输出一样但比较不相等(编码不同导致长度不一样)
147 0
PHP实现截取中文字符串不出现?号的解决方法
PHP实现截取中文字符串不出现?号的解决方法
130 0
|
PHP 开发者
PHP中的字符串有长度大小限制吗?为什么?
PHP中的字符串有长度大小限制吗?为什么?
412 0
PHP字符串开头和结尾的判断方法
PHP字符串开头和结尾的判断方法
491 0
|
JavaScript PHP
通过PHP将给定的字符串进行复制并输出新字符串
哈喽,大家好!在上一篇文章《你知道怎么在PHP中创建可选参数吗?》中给大家介绍了怎么在PHP中创建可选参数,感兴趣的朋友可以学习学习~ 今天本文将给大家介绍怎么通过PHP将给定的字符串进行复制并输出新字符串! 有的朋友可能还不太理解这个标题,什么复制?又输出新字符串? 不着急,大家看看问题的详细描述就知道了! 具体问题是“编写一个PHP程序来创建一个新字符串,该字符串是给定字符串的 n(非负整数)倍,比如字符串ab->变成ababab(可以说是原字符串的三倍)”?
251 0
|
PHP
PHP字符串学习之利用正则过滤字符,返回数字字符
在之前的文章《PHP字符串学习之怎么去除其他字符,只留下数字》中,我们介绍了利用for循环和in_array()或is_numeric()函数来提取字符串中数字字符的方法。这次我们继续PHP字符串的学习与练习,介绍一下提取字符串中数字字符的另几种方法。 提取字符串中数字字符,本质上就是字符串过滤操作。看到字符串过滤,我就想起了 “正则表达式”。
379 0
|
PHP
php 截取字符串
php 截取字符串第一个字符,php截取掉字符串最后一个字符的方法: $frist = substr( $c_url, 0, 1 ); $delete_last = substr(base_url(),0,-1);
1320 0