我需要在PHP中用"-“拆分一个字符串,然后得到最后一部分。
因此,从这里可以看出:
abc-123-xyz-789
我希望能得到
"789“
这是我想出来的代码:
substr(strrchr($urlId, '-'), 1)
它工作得很好,除了:
如果我的input-string不包含任何"-",我必须获取整个字符串,比如from:
123
我要回去了
123
而且它需要尽可能快。如有任何帮助,我们不胜感激!
发布于 2013-06-11 02:56:29
split($pattern,$string)
在给定模式或正则表达式中拆分字符串(从5.3.0开始就不推荐使用了)
preg_split($pattern,$string)
在给定的正则表达式模式内拆分字符串
explode($pattern,$string)
在给定模式内拆分字符串
end($arr)
获取最后一个数组元素
所以:
end(split('-',$str))
end(preg_split('/-/',$str))
$strArray = explode('-',$str)
$lastElement = end($strArray)
将返回-
分隔字符串的最后一个元素。
有一种核心的方法可以做到这一点:
$str = '1-2-3-4-5';
echo substr($str, strrpos($str, '-') + 1);
// | '--- get the last position of '-' and add 1(if don't substr will get '-' too)
// '----- get the last piece of string after the last occurrence of '-'
发布于 2013-06-11 02:55:13
$string = 'abc-123-xyz-789';
$exploded = explode('-', $string);
echo end($exploded);
EDIT::终于解决了E_STRICT问题
发布于 2013-06-11 02:53:46
只需检查分隔符是否存在,拆分或不拆分:
if (strpos($potentiallyDelimitedString, '-') !== FALSE) {
found delimiter, so split
}
https://stackoverflow.com/questions/17030779
复制相似问题