PHP按符号截取字符串的指定部分的实现方法
- A
大家在开发中可能会遇到需要截取某一个部分的内容,方法有很多,可以使用正则,也可以用内置函数,但该如何才能尽人意呢?傲世今天就给大家开开眼。
对于截取的需求也分很多种,字符串的截取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=");
傲世》原创,转载请保留文章出处。
本文链接:https://www.recho.cn/188.html
如您对本文章内容有所疑问、反馈或补充,欢迎通过邮箱:admin@h2fast.cn 联系我们!
版权声明:若无特殊注明,本文为《正文到此结束