我正在尝试从PHP中的字符串中提取子字符串。提取的子字符串应以单词结尾。我尝试使用以下代码,但我没有得到任何输出。
if (strlen($userresult->aboutme) > 20) // value of $userresult->aboutme is 'Very cool and friendly'
{
$description=substr($userresult->aboutme, 0, strpos($userresult->aboutme, ' ', 20));
}
else
{
$description=$userresult->aboutme;
}
echo $description; // not outputting any result
我希望子字符串以一个单词结束。在这里,我希望输出为Very cool and friendly
而不是Very cool and friend
,这是我们尝试使用substr($userresult->aboutme, 0, 20);
时的输出。我做错了什么?任何人都可以帮我解决这个问题吗?
提前致谢。
答案 0 :(得分:3)
您正在使用strpos(),它从字符串的开头看。你想要strRpos()
(r =反向):
$description=substr($userresult->aboutme, 0, strrpos($userresult->aboutme, ' '));
您不想使用strpos()
的偏移量,因为它可能适用于这种情况,但如果前几个字更短/更长,则不再有效。
答案 1 :(得分:0)
// split in words
$words = explode(' ', $userresult->aboutme);
// remove the last word
array_pop($words);
// combine again
echo implode(' ', $words);
这不尊重任何其他分隔符,如逗号或点。但你也没有这样做。
答案 2 :(得分:0)
像这样使用
if (strlen($userresult->aboutme) > 15) // value of $userresult->aboutme is 'Very cool and friendly'
{
$description=substr($userresult->aboutme, 0, strrpos($userresult->aboutme, ' '));
}
else
{
$description=$userresult->aboutme;
}
echo $description;