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

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

对于截取的需求也分很多种,字符串的截取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

正文到此结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值