我有一个类似的字符串
man=teabaran=marcomword=1&rolw=sunglassess
或
tina=gdjf==5=?hdhfg=oliver-people
并且我只需要获取最后一个CCD_ 1之后的字符串。则$result
将是sunglassess
或oliver-people
。
你能告诉我我可以用PHP中的什么函数来做这件事吗?
这可以在不爆炸的情况下完成,只需一行代码,如下所示:
$string = "man=teabaran=marcomword=1&rolw=sunglassess";
$last = substr($string, strrpos($string, '=') + 1);
echo $last;
使用end
函数将数组指针推进到最后一个元素
$str = 'man=teabaran=marcomword=1&rolw=sunglassess';
$array = explode('=',$str);
$last = end($array);
print $last;
/* will output
sunglasses
*/
第二个字符串也是如此,一次完成
$str = 'tina=gdjf==5=?hdhfg=oliver-people';
$last = end(explode('=',$str));
print $last;
/* will output
oliver-people
*/
如果它总是在最后一个等式符号(=)之后,那么您可以简单地将其分解并取下最后一部分:
$str = 'man=teabaran=marcomword=1&rolw=sunglassess';
$arr = explode('=', $str);
$result = $arr[count($arr)-1];
echo "Last element: " . $result; // sunglasses
正则表达式也很适合你(尽管它看起来有点过头了,不确定你首先拥有什么样的字符串/URL):
$str = 'man=teabaran=marcomword=1&rolw=sunglassess';
$regex = '/rolw=([^&=]*)/i';
// that this, take every character except &= unlimited times and capture them
preg_match_all($regex, $str, $matches);
print_r($matches);