我有这个字符串 abc_123_test,我试图从字符串中获取“测试”。我目前有这个代码。
$string = 'abc_123_test';
$extracted_string = substr( $string, 0, strrpos( $string, '_' ) );
但是,这将获取字符串的第一部分,直到“abc_123”。所以这似乎与我想要的相反。我想通过使用 strrpos,它会得到相反的结果,但显然我错过了一些东西。
有什么帮助吗?
strrpos
确实颠倒了它寻找最后一个的感觉,但是你仍然在从字符串的开头到那个点做子字符串。
您可以使用:
substr ($string, strrpos( $string, '_' ) + 1 );
获取字符串的最后一位而不是起始位。它从最后一个位置开始_
,因为你省略了长度,它给了你字符串的其余部分。
毫无疑问,有更好的方法来实现这一点,但是,如果你将自己限制在substr
and strrpos
,这将正常工作。
您可能想改用explode。
echo end(explode('_', $string));
尝试这个:
array_pop(explode('_', $string));
尝试
substr( $string, strrpos( $string, '_' )+1)
尝试:
$extracted_string = substr($string,strrpos($string, '_')+1);
使用explode()试试这个简单的方法
$string = 'abc_123_test';
$string = explode('_',$string);
print_r($string);
echo $string[2]; //output test
我认为您需要使用以下代码:
$extracted_string = substr( $string, strrpos( $string, '_' )+1);
substr($string, 0, strrpos($string, '_')); - 这从第 0 个位置开始。
您可以尝试使用此代码从以下字符串中获取“测试”
$string = 'abc_123_test';
echo substr($string,8,11);
好运